使用foreach语句选择$ _POST会返回错误

时间:2011-06-24 19:39:49

标签: php mysql database foreach

所以我有一个可以根据用户添加到页面的内容来增加和减少的表单。为了能够处理未知的帖子,我设置了一系列foreach循环,遍历表格中的每个部分,并为每个部分解开数组。

表单是一系列表格。每个表都是一个类别,每一行都是它的不同部分。每行有7个部分。该脚本遍历并获取将每个列片插入数据库所需的部分。

在我的个人家庭服务器上,代码不会返回任何错误并相应地更新数据库。在我付费的主机上虽然我收到了错误。错误发生在第一次foreach之后。它出现在:

foreach($tablecontent as $key => $values)

这是错误: 警告:在第14行的/home/sariep5/public_html/werchris.com/circuitcheck/submit.php中为foreach()提供的参数无效

我的代码如下:

<td><input type="text" maxlength="3" name="esd[8][eng]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q2]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][loa]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][wire]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][verify]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][assy]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q4]" value=""></td>

这是表单的HTML部分。像这样的部分仅使用名称的不同部分创建。所以esd可以是任何其他类别,8个增量,而其他7个在每个部分都是相同的。

foreach ($_POST as $table => $tablecontent) { 
    foreach($tablecontent as $key => $values) {
        foreach($values as $row => $value) {
            $value = strip_tags(htmlspecialchars($value));
            $row = strip_tags(htmlspecialchars($row));
            $key = strip_tags(htmlspecialchars($key));
            mysql_query("UPDATE tablecontent SET ".$row." = '$value'
                         WHERE id='$key'");
        }
    } 
}

谢谢!

1 个答案:

答案 0 :(得分:0)

这是简单的foreach($tablecontent as $key => $values)错误,表示$tablecontent不是数组

  

警告:在第14行的/home/sariep5/public_html/werchris.com/circuitcheck/submit.php中为foreach()提供的参数无效

尝试var_dump($tablecontent);那里