1

私の質問をチェックしていただきありがとうございます。そのフィールドが null の場合にのみデータベースの値を更新しようとしています (そのため、誰かがすべての準備ができているスポットにサインアップしようとすると、既存のユーザーは上書きされず、エラー メッセージが出力されます)。以下に、私が試した最新のスクリプトを 2 つ挙げます。最初のスクリプトは、select ステートメントがない場合にデータベースを更新するために機能しますが、同じ日時に入力するとユーザーを上書きします。みんなありがとう!

$sql = ("SELECT `player1` FROM `users` where id = '$id' and Times = '$time'"); 


$result = $conn->query($sql);

if ($result->fetch_assoc === NULL) {
$update_player = ("UPDATE users SET player1 = '$name' where id = '$id' AND Times =   '$time'")

if($update_player){
echo "Date for $name inserted successfully!";
}
}

else {
  echo 'That spot is all ready taken!';
}

//2nd script 

$query=mysql_query("UPDATE users SET 
player1 = isNULL (player1, $name) 
where id = '$id' AND Times = '$time'" );

if($query){

 echo "Data for $name inserted successfully!";
}

else {
 echo 'That spot is all ready taken!';
}
4

2 に答える 2

2

次のコードでうまくいくはずです。

$query=mysql_query("UPDATE users SET 
player1='$name' 
where id = '$id' AND Times = '$time' AND player1 IS NULL" );

if(mysql_affected_rows() == 1){
  echo "Data for $name inserted successfully!";
}
else {
  echo 'That spot is all ready taken!';
}

pdo代わりにormysqli関数を使用する必要があることに注意してください。

于 2012-12-27T15:00:45.130 に答える
0

これを試して。

 while($row = $result->fetch_assoc) {
    if($row['player1'] == NULL){
      $update_player = ("UPDATE users SET player1 = '$name' where id = '$id' AND Times =   '$time'")
    }
于 2012-12-27T15:02:47.243 に答える