私が作成しているカード ゲームでは、作成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'.$ver
field title
column
警告: 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;
}