1

我的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 的答案,抱歉英语不好

4

3 回答 3

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
于 2013-09-02T02:27:26.157 回答
1

变量名不能包含空格,因此您的变量名无效。它应该是$nowor$_nowNOT $ now。有关详细信息,请参阅语言变量基础知识

正确的代码:

    $now = time ();
    $olline = mysql_num_rows (mysql_query ("select * from members where gender = 'Man' and (online - '$now')> 10"));

另外,避免使用mysql_函数,因为它们已被弃用。使用mysqli_PDO

于 2013-09-02T02:16:47.863 回答
0

我不确定,我已经清楚地理解了你的问题。

如果我理解正确,您想显示在​​线可用成员。

您是否有任何标志可以检查会员是否在线?如果有标志,则使用该标志并按在线状态过滤。这就是我们必须为聊天操作做的事情。

我不确定,为什么你要减法。

于 2013-09-02T02:35:55.903 回答