1

私が作成しているカード ゲームでは、作成checkboxした手のデータベースを 3 枚のカードごとに更新するため、foreach ループでデータベースを更新する必要があります。

私が抱えている問題は、正しいように見えても機能しないことです。

if (isset($_POST['hand']) == true)
{
    if (sizeof($_POST['checkbox']) == 3)
    {
        foreach($_POST['checkbox'] as $checkbox)
        {
            $query = "UPDATE games SET ? = ? WHERE comp = 0";
            $db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
            $stmt = $db->prepare($query);
            $stmt->bindValue(1, "ss$ver");
            $stmt->bindValue(2, $checkbox);
            $stmt->execute();
            $ver = $ver + 1;
            echo $checkbox.'<br/>';
        }
    }
    else
    {
        echo 'You must only select 3 cards.';
    }
}

$verカードを foreach ループで実行できるようにするためです。ループがループされるたびに"ss$ver"/がインクリメントされるため、データベース内の次の/に追従します。しかし、私が得るmySQLエラーはこれです。'ss'.$verfield titlecolumn

警告: PDOStatement::execute(): SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。E:\wamp\www\index.php の 126 行目の 1 行目付近で ''ss1' = '13' WHERE comp = 0' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

警告: PDOStatement::execute(): SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。''ss2' = '15' WHERE comp = 0' at line 1 in E:\wamp\www\index.php on line 126` を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

等..

チェックボックスの foreach ループを回避する方法、または実際にループで更新する方法についてのアイデアはありますか?

どんな助けでも大歓迎です!

そして、フォームについて

echo '<form input="index.php" method="post">';
foreach($fetch as $key => $value)
{
    $check = '<input class="check" type="checkbox" name="checkbox[]" value="'.$value.'">';
    echo $cards[$value].$check;
}
4

1 に答える 1