我遇到mysql_query问题 我试图找到在线的成员,在成员表中有一个字段“在线”总是用时间服务器更新。这是查询。
$ now = time ();
$ olline = mysql_num_rows (mysql_query ("select * from members where gender = 'Man' and (online - '$ now')> 10"));
在phpmyadmin中有7个成员按照上面的查询。 tp我的值为0.我的代码有什么问题。 tq的答案和抱歉的坏英语
答案 0 :(得分:1)
变量名称不能包含空格,因此您的变量名称无效。它应该是$now
或$_now
和不 $ now
。见Language variable basics for more information:
正确的代码:
$now = time ();
$olline = mysql_num_rows (mysql_query ("select * from members where gender = 'Man' and (online - '$now')> 10"));
另外,请避免使用mysql_
函数,因为它们已被弃用。使用mysqli_
或PDO
。
答案 1 :(得分:1)
你应该尝试并且总是使用Mysqli这些天,因为很长一段时间Mysql将完全消失。您的代码的Mysqli示例:
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$now = time(); // The time now for query calc
$gender = "Man"; // Gender for query
$stmt = $mysqli->stmt_init(); //Initialise statement
$stmt->prepare("SELECT * FROM members WHERE gender = ? AND (online - ?)> 10"); //Prepare the query
$stmt->bind_param('ss', $gender, $now); //Assign the query parameters
$stmt->execute(); // Execute the query
$stmt->store_result(); // store result of prepared statement
echo $stmt->num_rows;
$stmt->free_result(); //free up the $stmt var
答案 2 :(得分:0)
我不确定,我已经清楚地理解了你的问题。
如果我理解正确,您希望显示在线可用会员。
您是否有任何标志可以检查会员是否在线?如果有标志,则使用该标志并按在线状态过滤。这就是我们如何进行聊天操作。
我不确定,你为什么要减法。