3

だから私はPHPでのみユーザーをペアリングしたい:

まず、使用可能なユーザーIDを1つ取得します//今はランダムではありません

mysql_query('SELECT id FROM users WHERE state="0" LIMIT 1'); //state 0 = user avaliable, 1 = talking/playing with someone

$available_id=クエリからIDを取得するためのもの

そして更新します:

$result = mysql_query('UPDATE INTO users SET state="1" WHERE (id=$available_id OR id=$my_id) AND state="0"');

その場合$result == falseは、1つの行が更新されていないことを意味します。
では、最初のステップに戻り$result == trueましょう。これは、私の行が更新されたか、利用可能なユーザー、またはその両方であることを意味している可能性があります。私はそれをどうやってやるのか混乱しています。

4

5 に答える 5

4

mysql_queryエラーの場合に戻りfalseます。mysql_affected_rowsを使用して、更新された行の数を確認できます

于 2012-05-11T12:21:32.020 に答える
1

mysql_num_rows(); http://php.net/manual/en/function.mysql-num-rows.phpおよびhttp://php.net/manual/en/function.mysql-affected-rows.phpを使用できますmysql_affected_rows();

クエリが間違っているようです$result = mysql_query('UPDATE INTO users SET state="1" WHERE (id=$available_id OR id=$my_id) AND state="0"');削除into

于 2012-05-11T12:21:54.850 に答える
0

いいえ、

こんな感じです

INSERT、UPDATE、DELETE、DROPなど、mysql_query()は、成功した場合はTRUEを返し、エラーの場合はFALSEを返します。

mysql_queryがFALSEを返す場合は、クエリが失敗して構文エラーが発生することを意味します。TRUEの場合は、クエリが正常に実行されたことを意味しますが、行が更新されることを意味するわけではありません。

UPDATEクエリが正常に実行された後、mysql_affected_rowsを使用して行が更新されているかどうかを実際に確認できます。

于 2012-05-11T12:22:22.210 に答える
0
$id = mysql_query('SELECT id FROM users WHERE state="0" LIMIT 1');
$uid = mysql_fetch_array($id);

$id2 = mysql_query('SELECT id FROM users WHERE status="0" AND `id`!='".$uid."' ORDER BY rand LIMIT 1');
$uid2 = mysql_fetch_array($id2);

mysql_query("UPDATE user SET `user`='1' WHERE `id` IN($uid,$uid2)");

ペアテーブルでペアリングします。

于 2012-05-11T12:31:43.193 に答える
0

このコードを試してください

$first=mysql_query('select id from users where state =0 limit 1');

$available=mysql_fetch_row($first);
$available_id=$available['id'];

$result = mysql_query('UPDATE INTO users SET state="1" WHERE
(id=$available_id OR id=$my_id) AND state="0"');
于 2012-05-11T13:08:59.803 に答える