1

私は製品と呼ばれるテーブルを持っています。

id : int、主キー、自動インクリメント product_name : varchar 強調表示: int (1 または 0)

そのため、強調表示されたフィールドを管理ページから完全に更新できるようにしたいので、各製品 (または行) のデータを取得するたびに、製品名の横に、強調表示されているか (1) いないか (0) を示すチェックボックスがあります。

これは私のコードです:

<?php
$host = "localhost";
$user = "root";
$pass = "usbw";
$db = "test";

mysql_connect($host,$user,$pass);
mysql_select_db($db);
?>

<?php

if(isset($_POST['submit']))
{
    foreach (isset($_POST['checkBox']) as $id => $value)
{
    mysql_query("UPDATE products SET highlighted='$value' WHERE id='$id'");
}
echo "Updated! <a href='index.php'>Back</a>";
}
else
{
    echo "<form action='index.php' method='POST'>";
    $result = mysql_query("SELECT * FROM products");
    while($q = mysql_fetch_assoc($result))
    {
        echo "".$q['product_name']."";
        if($q['highlighted'] == '1')
        {
            echo "<input type='checkbox' checked value='1' name='checkBox['"; ?><?php echo $q['id']; ?><?php echo "']'>";
    }
    else
    {
        echo "<input type='checkbox' value='1' name='checkBox['"; ?><?php echo $q['id']; ?><?php echo "']'>";
    }
    echo "<br>";
    }

echo "<input type='submit' value='submit' name='submit'>";
echo "</form>";
}

?>

何らかの理由で、フォームを更新しようとするたびに次のエラーが発生します。

Warning: Invalid argument supplied for foreach() in C:\Users\Badsector\Desktop\USBWebserver v8.5\8.5\root\teszt\index.php on line 15

事前にご支援いただきありがとうございます。私は今完全に混乱しています。何時間も苦労してきました。

4

2 に答える 2