帮助php FOREACH循环

时间:2009-10-14 07:18:00

标签: php mysql foreach

有些人可以告诉我下面的foreach php循环有什么问题。

foreach ($_POST[sortlist] as $key => $value) 
{
    $sql = "UPDATE sortable 
            SET color_order = " . mysql_real_escape_string($key) . " 
            WHERE id = " . mysql_real_escape_string($value);

    $result = mysql_query($sql) or die(mysql_error());
}

我一直收到警告:无效的参数提供了foreach().... 当我上传到服务器

由于

6 个答案:

答案 0 :(得分:4)

$_POST['sortlist']可能不是数组。试试print_r($_POST)看看你有什么。

答案 1 :(得分:3)

尝试将$_POST[sortlist]更改为$_POST['sortlist']

答案 2 :(得分:1)

我假设$ _POST [sortlist]不是数组。这可能就是你想要做的事情:

foreach ($_POST as $varname => $varvalue) {
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)."   where id = ".mysql_real_escape_string($varvalue);
    $result = mysql_query($sql) or die(mysql_error());
 }

或者如果$ _POST ['sortlist']是一个数组,请尝试:

foreach ($_POST['sortlist'] as $varname => $varvalue) {
    $sql = "update sortable set color_order = ".mysql_real_escape_string($varname)."   where id = ".mysql_real_escape_string($varvalue);
    $result = mysql_query($sql) or die(mysql_error());
 }

答案 3 :(得分:0)

提示:错误消息指的是foreach行。这只能读取一个变量$ _POST [sortlist],它不会在循环内修改。所以你可以忽略所有SQL的东西;这与你的问题无关。将问题减少到仍然存在错误的最小可能代码段。这将有助于你解决它。

答案 4 :(得分:0)

不要使用mysql_query,它非常不安全,不推荐使用。

开始使用mysqli_query,不如PDO安全,但会更好。

答案 5 :(得分:-1)

为了热爱互联网,请不要自己构建SQL查询。使用PDO