2010-08-01 57 views
0

我需要一些帮助来理解将变量与字符串混合的正确方法。我已经尝试了所有我能想到的配置,并且不断收到错误。带有散列变量的PHP MYSQL更新

<?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 

回答

3

item在url中的数组像item[]?如果这不是你得到这个错误的原因,你不能遍历一个非迭代器对象!

也摆脱围绕值单引号的,如果他们是数字和使用字符串连接,

"UPDATE userprojectlist SET category_display_order = " . $key . " WHERE category_id = " . $value . ";" 
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"); 

这是假设两个变量是整数。

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代码无关。