【发布时间】:2014-01-19 03:16:02
【问题描述】:
我正在尝试使用 while 循环更新表中的值,但我希望该值类似于使用 auto_inc 键。
我的桌子:ID / CAR_ID / IMG_KEY / IMAGE
我想取 12 行相同的 CAR_ID 并给出从 1 到 12 的 IMG_KEY 值。
我尝试了下面的循环,但结果是给 IMG_KEY 值 1
$getImages = mysql_query("SELECT * FROM more_images WHERE car_id = '$car_id'") or die(mysql_error());
$img_key = 0;
for ($img_key = 1; $img_key <= mysql_num_rows($getImages); $img_key ++) {
while ($selectedImages = mysql_fetch_assoc($getImages)) {
$update = mysql_query("UPDATE `more_images` SET `img_key` = '$img_key' WHERE `car_id` = '$car_id'") or die(mysql_error());
}
}
目标是为以下 12 行 img_key 提供从 1 到 12 的值以及所有其他值。
【问题讨论】:
-
你是这个意思吗? stackoverflow.com/questions/973380/…
-
由于
$car_id没有改变,你总是在更新同一行。 -
您似乎在循环选定的行以根据每行中的数据更新它们。请发布您用来选择这些行的 SQL,因为它看起来可以通过一个 SQL 调用完成,并且没有循环结果。
-
哦,在您的 while 循环中,您正在读取所有返回的记录,这对推进您的 for 循环没有任何作用。此外,
mysql_*功能已弃用,您最好切换到mysqli_*或PDO。 (此处解释:stackoverflow.com/questions/12859942/…) -
我更新了问题以获得更好的解释。我知道
mysqldecleration。我的 PHP 是旧的。当我更新它时,我将替换mysql函数。不是现在
标签: php mysql for-loop while-loop