Php foreach提供的参数无效,mysql获取数组问题

Php foreach提供的参数无效,mysql获取数组问题,php,mysql,Php,Mysql,我有这个代码,我用它来打印数据库中的一些字段 我的问题是,我得到了关于提供的foreach无效参数和mysql获取数组问题的错误 代码如下: foreach( $checked1 as $key => $value){ echo "<th> $value </th>"; } echo "</tr></thead>"; while($row = mysql_fetch_array($result)){ 这里有什么问题 整个代码:

我有这个代码,我用它来打印数据库中的一些字段

我的问题是,我得到了关于提供的foreach无效参数和mysql获取数组问题的错误

代码如下:

foreach( $checked1 as $key => $value){
    echo "<th> $value </th>";
}
echo "</tr></thead>";

while($row = mysql_fetch_array($result)){
这里有什么问题

整个代码:

    <?php

echo "<div id='table-3'>"; 
    if(isset($_POST['Submit'])) {
    echo "<pre>";
    $checked1 = $_POST['checkbox'];
    $checked = implode(',', $_POST['checkbox']);

    }
    $con = mysql_connect('localhost','user','passwd');
    mysql_query("SET NAMES UTF8");

    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }

    mysql_select_db("db_name", $con);

    $result = mysql_query("SELECT $checked FROM hostess");
    echo "<table >";
    echo "<thead><tr>";
    if(is_array($_POST['checkbox'])){
 foreach( $checked1 as $key => $value){
    echo "<th> $value </th>";
    }
    echo "</tr></thead>";

    } else {
echo "Checkbox is not an array.";
}



   while($row = mysql_fetch_array($result)){
echo "<tr>";
foreach($checked1 as $key => $value){
if($value == 'photo'){
 echo "<td> <img src=foto/photo1/".$row[$value] . "></td>";

}   else if($value == 'photo2'){
echo "<td><img src=foto/photo2/".$row[$value] . "></td></td>";

}
else if( $value == 'photo2' && $value == 'photo'){
    echo "<td> <img src=foto/photo1/".$row[$value] . "></td>";
    echo "<td><img src=foto/photo2/".$row[$value] . "></td></td>";
}
else{

    echo "<td>" . $row[$value] . "</td>";
}
}echo "</tr>";
    }
    echo "</table>";

未定义
$\u POST['checkbox']
(发送表单时未选中复选框)或不是数组(输入名称结尾不包含
[]

在对变量执行任何操作之前,应始终检查该变量是否包含所需内容,例如:

<input type="checkbox" name="checkbox[]" value="1" />

您的HTML表单中的$\u POST['checkbox']调用了什么?应该是这样的:

if(is_array($_POST['checkbox'])){
// contiue with foreach...
} else {
echo "Checkbox is not an array.";
}

确切的错误消息会更有用。而且,
$result
可能不是有效的MySQL资源。您能看看我更新的代码吗?@LaMyse我想我可能已经用我的编辑覆盖了您的更新。请再试一次。您能做
var\u转储($checked1)吗
变量转储($result)
就在你给我们的代码片段之前,将结果发布在这里或pastebin.com上?@LaMyse:如果你不提供任何PHP调试错误,我们将无法进一步帮助你。这是一个数组..,我刚刚检查过它!是的,我已经检查过了,当我尝试提交代码时,一切正常,但当我打印网页时,出现的是错误,而不是结果。。这很奇怪……你所说的网页打印是什么意思?您是否使用了一些函数来显示页面,而该函数中出现了错误?是的,我使用的是pdf格式的在线web打印机,它可以在所有页面上工作,即使在这个问题上,只是它在这里打印错误。您必须向我们显示更多代码,
$checked1
仍然是一个数组,您正试图使用foreach对其进行迭代。您可能已将作用域更改为未定义此变量的位置。只需检查它是否为数组/是否包含任何数据,如果打印它,则可能不包含任何数据。因此,请确保设置no或alternative
else
子句。
<input type="checkbox" name="checkbox[]" value="1" />
if(is_array($_POST['checkbox'])){
// contiue with foreach...
} else {
echo "Checkbox is not an array.";
}