ユーザーあたりレコードが1つしかないフォームがあります。ユーザーが以前に投稿したかどうかを判断するために使用している条件は、何らかの理由でデータベースに書き込んでいないということです。どんな助けでも大歓迎です。データベースで値が更新されない
ここでは、コードです:
<?php
$user_id = $_SESSION['user_id'];
$anthem1 = null;
$cointoss2 = null;
$firstscore3 = null;
//$query
$query = "SELECT * ";
$query .= "FROM mypicks ";
$query .= "WHERE user_id = {$user_id} ";
$result = mysqli_query($connection, $query);
if (isset($result)) {
//existing submission - this is breaking it
if (isset($_POST['submit'])) {
if (isset($_POST['anthem1'])) {
$anthem1 = $_POST['anthem1'];
}
if (isset($_POST['cointoss2'])) {
$cointoss2 = $_POST['cointoss2'];
}
if (isset($_POST['firstscore3'])) {
$firstscore3 = $_POST['firstscore3'];
}
$query = "UPDATE mypicks SET";
$query .= "anthem1 = '{$anthem1}', ";
$query .= "cointoss2 = '{$cointoss2}', ";
$query .= "firstscore3 = '{$firstscore3}' ";
$query .= "WHERE user_id = {$user_id} ";
$result = mysqli_query($connection, $query);
}
}else{
//new submission
if (isset($_POST['submit'])) {
if (isset($_POST['anthem1'])) {
$anthem1 = $_POST['anthem1'];
}
if (isset($_POST['cointoss2'])) {
$cointoss2 = $_POST['cointoss2'];
}
if (isset($_POST['firstscore3'])) {
$firstscore3 = $_POST['firstscore3'];
}
$query = "INSERT INTO mypicks (";
$query .= " user_id, anthem1, cointoss2, firstscore3";
$query .= ") VALUES (";
$query .= " '{$user_id}', '{$anthem1}', '{$cointoss2}', '{$firstscore3}'";
$query .= ")";
$result = mysqli_query($connection, $query);
}
}
?>
は、すべてのフィールドが埋められたいだけでphpmyadminのか、何のUIを通じてクエリをテストすることによって、将来的にこのようなエラーを防ぐことができ、
第三の更新に関するあなたの質問に関連していないのか? issetがfalseを返すのはどうですか? – tanaydin
"SET"の後に空白を追加しようとしましたか?構文エラーのようです –