小编pau*_*o77的帖子

在嵌套 While 循环中输出数据透视表/链接表的内容 - MySQL / PHP PDO

我遇到了一种情况,我试图从与 PHP 的多对多关系输出 MySQL 数据透视表/链接表的内容。

在下面的代码中,我有一系列包含图像的板。实际的板预览是使用 PHP 的第一个块输出的,但在其中我需要一个嵌套的 while 循环来输出图像本身。

枢轴/链接表被称为boards_images有两列board_id,并且这些都是表和表image_id的外键。下面的主要代码下面给出了表格的表示。boardsimages

因为某些板的图像已经存在于其他板上,所以我显然需要某种类型的条件逻辑,以便在相关板存在时输出图像。

每个板预览只会显示四个图像,因此我需要LIMIT 4向 MySQL 添加一个子句

我的问题

解决这个问题的最佳方法是什么,我:

a) 需要执行两次数据库调用,一次在父 while 循环中,一次在嵌套 while 循环中,或者我是否需要使用多个 JOIN 从父 while 循环中的 MySQL 数据库获取所有信息?

b) 如何实际输出数据透视表/链接表的内容?我似乎不知道如何做到这一点。

<?php 

    // $db_id is a variable created from a user login $_SESSION value

    $sql = "SELECT boards.board_id, boards.board_name, users.user_id 
    FROM boards
    JOIN users ON boards.user_id = users.user_id 
    WHERE users.user_id = :user_id
    ORDER BY boards.board_id DESC";

    $stmt = $connection->prepare($sql); …
Run Code Online (Sandbox Code Playgroud)

php mysql sql nested

5
推荐指数
1
解决办法
262
查看次数

当在多个 Go 中添加允许的文件总数时,在更改事件侦听器中对一组文件进行切片 - JavaScript

我有一个需要文件上传的表单,目前每次上传的文件数限制为 10 个。后端也有 PHP 验证。

\n

当附加的文件超过 10 个时,我当前在文件输入元素的事件slice(0, 10)内有一个 JavaScript 方法change,当附加的文件数超过 10 个时,该方法会删除所有文件(及其预览图像缩略图)。

\n
// For each added file, add it to submitData (the DataTransfer Object), if not already present\n[...e.target.files].slice(0,10).forEach((file) => {\n    if (currentSubmitData.every((currFile) => currFile.name !== file.name)) {\n        submitData.items.add(file);\n    }\n});\n
Run Code Online (Sandbox Code Playgroud)\n

问题

\n

我能\xe2\x80\x99t 似乎做的是在复合附件情况下找到一种slice()文件数组的方法,即如果最初附加 8 个文件,然后用户决定在提交表单之前添加另外 4 个文件,使总数达到 12。仅当一次性添加超过 10 个时才会发生当前切片。

\n

我有一个decode()在循环内运行的方法(对于附加的每个图像),该方法执行前端验证,以及一个在promiseAllSettled()输出主要错误消息之前等待附加最后一个图像的方法,告诉用户检查上的特定错误页。

\n

问题

\n

如果用户最初附加的文件数小于 10,然后在提交表单之前附加更多文件,使其数量超过 10,那么如何根据附加的文件总数对数组进行切片?

\n
const attachFiles = document.getElementById('attach-files'), // file input …
Run Code Online (Sandbox Code Playgroud)

javascript arrays slice dom-events

2
推荐指数
1
解决办法
616
查看次数

标签 统计

arrays ×1

dom-events ×1

javascript ×1

mysql ×1

nested ×1

php ×1

slice ×1

sql ×1