所以我想只在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
那么什么?它可能意味着我的行已更新或可用用户,或两者兼而有之。我很困惑如何完成它。
答案 0 :(得分:4)
mysql_query
返回false
表示错误。您可以使用mysql_affected_rows
答案 1 :(得分:1)
你可以使用mysql_num_rows();
http://php.net/manual/en/function.mysql-num-rows.php和mysql_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
答案 2 :(得分:0)
不,
就像这样
INSERT,UPDATE,DELETE,DROP等,mysql_query()返回TRUE 成功或错误时为FALSE。
如果mysql_query返回FALSE意味着您查询失败并出现语法错误,如果为TRUE,则表示查询已成功运行,但这并不意味着该行已更新。
在成功执行UPDATE查询后,您可以使用mysql_affected_rows检查行是否已更新
答案 3 :(得分: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)");
并将其配对在你的配对表中。
答案 4 :(得分: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"');