我需要一些帮助来理解将变量与这样的字符串混合的正确方法。我已经尝试了我能想到的所有配置,并且一直出现错误。
<?php
include('connect.php');
foreach($_GET['item'] as $key=>$value) {
mysql_query("UPDATE userprojectlist SET category_display_order = '$key' WHERE category_id = '$value' ");
}
?>
Notice: Undefined index: item in updatedb.php on line 3
Warning: Invalid argument supplied for foreach() in pdatedb.php on line 3
答案 0 :(得分:3)
item
中的item[]
数组是否为"UPDATE userprojectlist SET category_display_order = " . $key . " WHERE category_id = " . $value . ";"
?如果不是你得到那个错误的原因,你就不能遍历非迭代器对象!
如果它们是数字并使用字符串连接,也可以除去值周围的单引号
{{1}}
答案 1 :(得分:3)
Notice: Undefined index: item in updatedb.php on line 3
此错误表示没有定义$_GET['item']
的变量。您可能没有将$_GET['item']
传递到此页面。
Warning: Invalid argument supplied for foreach() in pdatedb.php on line 3
因此,由于上一个错误,您得到此信息,因为$_GET['item']
不是数组。
该错误与SQL代码无关。
答案 2 :(得分:1)
mysql_query('UPDATE userprojectlist SET category_display_order = ' . $key . ' WHERE category_id = ' . $value );
或
mysql_query("UPDATE userprojectlist SET category_display_order = $key WHERE category_id = $value" );
这假设两个变量都是整数。