作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 $_POST 中有一个变量,如下所示:
[genre_id] => Array
(
[0] => 1
[1] => 3
)
我有一段像这样的 php 代码:
foreach ($_POST["genre_id"] as $key => $value) {
$genre_query = "UPDATE books_genres SET genre_id = $value WHERE book_id = $book_id";
$genre_result = mysqli_query($connection, $genre_query);
if ($genre_result && mysqli_affected_rows($connection) >= 0) {
echo("Genre Update: Sucess<br>");
} else {
echo("Genre Update: Fail<br>");
}
}
由于存在多对多关系,名为 books_genres
的表是一个联结表。这意味着一些 $book_id
将是重复的。明显发生的情况是,具有指定 book_id
的每一行每次都会更新。
我的 books_genres 表中应该有另一列吗?即使如此,我也不确定如何引用该索引?或者我应该以某种方式编写不同的查询?
最佳答案
连接表的要点是您不需要更新任何内容。它有两个表中的 key ,对吧?你的表中的键没有改变,是吗?除非您已经对结构进行非规范化,否则您实际上不需要更新连接表,除非在极少数情况下。如果某本书被分类为“经典”,然后被重新分类为“恐怖”,您将删除经典条目并插入恐怖条目。也许发布 ddl 和一些示例数据将有助于解释这一点。
关于php - 使用带有重复 ID 的联结表会导致 php foreach 循环中的 sql 查询困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236884/
我需要创建一个从 C:\x 到 C:\xxx\yyy\zzz\aaa\bbb 的连接点(目录符号链接(symbolic link)),因为在将文件添加到这个目录,我无法控制目录结构。 我读到创建连接点
我是一名优秀的程序员,十分优秀!