只在PHP中随机配对用户 - 解决方案

时间:2012-05-11 12:18:19

标签: php mysql

所以我想只在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那么什么?它可能意味着我的行已更新或可用用户,或两者兼而有之。我很困惑如何完成它。

5 个答案:

答案 0 :(得分:4)

mysql_query返回false表示错误。您可以使用mysql_affected_rows

检查更新行的数量

答案 1 :(得分: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

答案 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"');