SELECT COUNT的SQL资源ID#4?

时间:2012-02-17 14:15:41

标签: php mysql

  

可能重复:
  How do i “echo” a “Resource id #6” from a MySql response in PHP?

我有一个声明:

      $query1 = mysql_query("SELECT COUNT(author) FROM userpages WHERE `author` = '" . $userid . "'") or die();
      echo $query1;

忽略他们非常糟糕的命名惯例,它只是为了测试它,然后才加强它。因为我实际上没有从表中获取数据我应该能够回应声明不应该吗?然而它给了我一个错误。

错误是:资源ID#4

有什么建议吗?

感谢。

3 个答案:

答案 0 :(得分:2)

mysql_query返回结果集资源,您必须使用

循环遍历结果集
mysql_fetch_array($query1)

(或类似)检索每条记录。无论查询返回1行还是100,000行都没关系,原理是相同的

在感到需要寻求帮助之前,请阅读relevant sections of the manual详细解释这一点。阅读手册是你的朋友!

修改

while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) { 
   echo $row['COUNT(author)'];   
} 

或将您的SQL查询更改为

  $query1 = mysql_query("SELECT COUNT(author) AS authorcount FROM userpages WHERE `author` = '" . $userid . "'") or die(); 

然后

$row = mysql_fetch_array($res,MYSQL_ASSOC)) 

将返回索引为“authorcount”

的数组
echo $row['authorcount'];   

答案 1 :(得分:1)

我认为,这会有所帮助

$query = "SELECT COUNT(author) as cnt FROM userpages WHERE `author` = '" . $userid . "'";
echo $query;
$res = mysql_query($query);
while ($row = mysql_fetch_array($res,MYSQL_ASSOC)) {
   print_r($row);  
}

答案 2 :(得分:1)

http://www.php.net/manual/en/function.mysql-query.php

返回值:

  

对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他语句返回   resultset,mysql_query()在成功时返回资源,或者返回FALSE   错误。

  

返回的结果资源应该传递给mysql_fetch_array(),   以及用于处理结果表的其他函数,以访问   返回数据。