【问题标题】:MYSQL : help with count row functionMYSQL:帮助计数行功能
【发布时间】:2011-02-10 15:19:00
【问题描述】:

我需要在我的表tbl_link_qa 中检索我的qrec_id 中的行数,其中包含值。

mysql_query("SELECT COUNT(qrec_id) from tbl_link_qa")or die(mysql_error());

但这似乎没有给出任何输出。

----更新:

$x=0;

mysql_query("SELECT COUNT * from tbl_link_qa WHERE qrec_id != $x");

【问题讨论】:

  • mysql_query() 单独不会给出任何输出。查看手册页以获取完整的工作示例:php.net/manual/en/function.mysql-query.php
  • 您必须以完全相同的方式获得该值,您将获得任何其他数据。为什么不应用你已经用于其他 mysql 操作的代码?

标签: php mysql


【解决方案1】:

这不会给出任何输出,因为它所做的只是将查询发送到数据库。它实际上并没有收集结果。

你需要将mysql_query()的结果赋值给一个变量。

<?php
if ($result = mysql_query ('select count(*) from wherever;'))
{
    $row = mysql_fetch_assoc ($result);
    var_dump ($row);
}
else
    die ('some error message');
?>

【讨论】:

  • 它放弃了这个。 array(1) { ["count(*)"]=> string(2) "87" } 我需要获取包含值的 qrec_id 字段中受影响的行数。
  • 我需要获取此代码才能得出“可用的 n 个问题中的 1 个”。 n 是包含 qrec_id 中的值但尚未有任何相应答案的行数。
  • array(1) { ["count(*)"]=> string(2) "59" } 它给了我这个。
  • 它返回一个数组。你知道如何访问数组成员,对吧?如果没有,PHP 手册中都有。
  • 我明白了 :) mysql_fetch_assoc()。当我点击下一步时,我只需要弄清楚它是如何从“1 of 5”变为“2 of 5”的
【解决方案2】:

使用此查询来获取非空值的列数:

SELECT SUM(qrec_id IS NOT NULL) FROM tbl_link_qa

SELECT count(*) FROM tbl_link_qa WHERE qrec_id IS NOT NULL

和@Gordon 脚本

【讨论】:

  • 或者可能是 'SELECT SUM(qrec_id IS NULL) AS available, count(*) AS total FROM tbl_link_qa' 取决于字段为 NULL 时的含义
  • 谢谢!我现在明白了:) 我只需要弄清楚我的下一步。当我单击下一个按钮时将“1 of 5”变为“2 of 5”,当我单击上一个按钮时将“1 of 5”返回。
【解决方案3】:

您在手册页中有一个完整的示例:

http://es.php.net/mysql_query

参见示例 #2。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多