我尝试使用while循环更新表中的值,但我希望此值与使用auto_inc键一样。
我的表:ID / CAR_ID / IMG_KEY / IMAGE
我想从同一个CAR_ID
获取12行,并提供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以及所有其他值。
答案 0 :(得分:0)
好的,我仍然不能100%确定你想要什么,但我的猜测是你正在寻找这样的东西:
$imgKey = 0;
while ($selectedImages = mysql_fetch_assoc($getImages))
{
$imgKey++;
$update = mysql_query("UPDATE `more_images` SET `img_key` = '{$imgKey}' WHERE `car_id` = '{$car_id}'") or die(mysql_error());
}
在你的问题中,你的for
循环除了循环之外没有做任何其他事情,在你的情况下它会迭代12次。
由于mysql_fetch_assoc($getImages)
是循环遍历一组结果中所有行的函数。因此,对于for
循环的每次迭代,它会将所有记录更新为具有相同的$img_key
。
另外,真的不要使用mysql_*
函数,它们已被弃用。阅读此主题:
Why shouldn't I use mysql_* functions in PHP?