3

所以我只想在 PHP 中配对用户:

首先,获取一个可用的用户 ID //现在不是随机的

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那么这意味着没有一行更新。那么回到第一步,
如果$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.phpmysql_affected_rows(); http://php.net/manual/en/function.mysql-affected-rows.php

您的查询似乎错误$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
$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 回答
0

不,

是这样的

INSERT、UPDATE、DELETE、DROP 等,mysql_query() 在成功时返回 TRUE,在错误时返回 FALSE。

如果 mysql_query 返回 FALSE 意味着您查询失败并且有语法错误,如果 TRUE,则意味着查询成功运行,但这并不意味着该行已更新。

成功执行 UPDATE 查询后,您可以使用mysql_affected_rows真正检查行是否更新

于 2012-05-11T12:22:22.210 回答