0

如果我想unread在我的数据库中计算一个特定的行(),我应该如何继续这个 MySQL 查询?截至目前,它计算了整张桌子。

$result_notifications = mysql_query("select count(1) FROM bhost_notifications where taker_id='$user_info[u_id]'");
$row_notifications = mysql_fetch_array($result_notifications);
$total_notifications = $row_notifications[0];
4

3 回答 3

1

您需要别名列。

SELECT COUNT(1) AS count ...

然后你会打电话给$row_followers[count]. 请注意,mysql_函数已被弃用。了解传递变量时准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。

于 2013-04-09T15:15:37.293 回答
0

我怀疑你有一个未规范化的数据库。虽然这在某些情况下是可取的,但我怀疑它们在你的情况下。如所写,您不能确定查询是否会返回您想要的行。SQL 不保证行的顺序,除非您使用 order by 子句。

似乎这个问题表明了一些语法问题的更多问题。

于 2013-04-09T15:20:02.860 回答
0

随着时间的推移,我用 PHP 编写了一个不错的函数,它允许我轻松地查找记录,但仍然足够动态,可以在我执行的每种类型的查询中使用。

用法:

if (get("select * from table", $query_array) > 0)
{
 // There is at least one row returned
 $result_array = mysql_fetch_array($query_array);
 .
 .
 .
} else {
 // No rows in the set
}

功能:

function get($sql, &$array)
{
 $array = "";
 $q = mysql_query($sql);
 if (mysql_error())
 {
  $ret = -1;
  print "<div><font style='font-family: arial; font-size: 12px;'><font style='color: red;'>Error:</font> " . mysql_error() . "<br>SQL: #sql</font></div>";
  exit(1);
 } else {
  $ret = mysql_num_rows($q);
  if ($ret > 0)
  {
   $array = $q;
  }
 }
 return $ret;
}

如果查询有问题,这也会给出格式化的错误消息。我一直使用它,因为它将 mysql_query 和 mysql_num_rows 一起压缩成一个命令。

于 2013-04-09T19:48:12.130 回答