gpt4 book ai didi

php - 使用带有重复 ID 的联结表会导致 php foreach 循环中的 sql 查询困惑

转载 作者:行者123 更新时间:2023-11-29 19:24:40 25 4
gpt4 key购买 nike

我在 $_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com