选择并减少mysql查询的字段值

时间:2013-09-02 02:07:37

标签: php mysql

我遇到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的答案和抱歉的坏英语

3 个答案:

答案 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)

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

如果我理解正确,您希望显示在线可用会员。

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

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