0

私はデータベースからいくつかのフィールドを印刷するために使用するこのコードを持っています。

私の問題は、提供されたforeachの無効な引数とmysqlフェッチ配列の問題についてこのエラーが発生することです。

コードは次のとおりです。

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

while($row = mysql_fetch_array($result)){

$checked1配列はどこにありますか

$checked1 = $_POST['checkbox'];

ここでの問題は何ですか?

コード全体:

    <?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>";
4

2 に答える 2

1

定義されていない (フォームの送信中にチェックボックスがチェックされていない)か$_POST['checkbox']、配列ではない (入力名が[]末尾に含まれていない)。

変数に対して操作を実行する前に、変数に必要なものが含まれているかどうかを常に確認する必要があります。

if(is_array($checked1)){
    foreach( ... ){  
    }
}

$result = mysql_query(' ... ');

if(!$result){
   die(mysql_error());
}
于 2012-06-23T21:15:39.363 に答える
1

あなたの $_POST['checkbox'] は HTML フォームで何と呼ばれていますか? 次のようになります。

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

チェックボックスの値が配列として渡されていることを確認してください。以下をせよ:

if(is_array($_POST['checkbox'])){
// contiue with foreach...
} else {
echo "Checkbox is not an array.";
}
于 2012-06-23T21:15:56.313 に答える