【问题标题】:How to retrieve and display a COUNT query result in PHP?如何在 PHP 中检索和显示 COUNT 查询结果?
【发布时间】:2016-04-17 19:55:05
【问题描述】:

我是一个遇到 PHP 问题的初学者 :(

我有一个 PHP 函数,它显示数据库表中的所有行。现在我必须创建分页以每页仅显示有限数量的行。
我从查询中检索 COUNT 结果时遇到问题。我想创建一个条件,如果一页上的行数大于所需的行数,PHP 和 MySQL 使用 LIMIT。

如下代码:

$count = "SELECT COUNT(*) FROM articles";
$countq = $db->query($count);
$countrs = mysql_fetch_array($countq);
echo $countrs;

应该显示多行。但是,事实并非如此。我究竟做错了什么?我想看到一个结果,以确保其他一切都能正常工作。但我无法让它工作。
错误:mysql_fetch_array() 期望参数 1 是资源,给定对象

$db 包含数据库连接信息(服务器、用户...)并且正在工作

【问题讨论】:

  • 不要使用 mysql api go with pdo。
  • $db 包含数据库连接信息(服务器、用户...)并且正在工作...可能不是。你能显示那个代码吗?
  • 它正在工作;)我已经使用了答案中的 PDO,一切正常。谢谢

标签: php mysql select count


【解决方案1】:

使用 PDO 进行 MySQL 查询。

$db = new PDO('mysql:host=#YOUR HOST#;dbname=#YOUR DB#;charset=utf8', '#YOUR LOGIN#', '#YOUR PASSWORD#');
$query = $db->query('SELECT COUNT(*) AS count FROM articles');
$countq = $query->fetch();
$query->closeCursor();
echo $countq['count'];

希望对你有帮助

【讨论】:

    【解决方案2】:

    您必须在查询中设置限制,例如

    $count = "SELECT COUNT(*) FROM articles LIMIT 5,10";
    

    其中 5 是起点,10 是您想要的结果总数。

    您提到:$db 但不是 $db 是什么?我的意思是它是一个数据库对象类吗?如果您使用的是数据库类,这将直接工作,如果是这种情况,该类还将具有允许您在不使用 mysql_fetch_array(实际上是 mysqli_fetch_array)的情况下查询数据的函数。

    【讨论】:

    • 嗯,$db 是一个包含新 PDO( "mysql:host=" .dbserver. ";dbname=" .dbname,dbuser,dbpass, array( PDO::MYSQL_ATTR_INIT_COMMAND => " SET NAMES utf8", PDO::MYSQL_ATTR_INIT_COMMAND => "SET CHARACTER SET utf8" ) );它在创建数据库连接的外部文件中定义。然后这个文件被包含在当前的 php 文件中。
    • 在这种情况下,请参阅此。 php.net/manual/en/pdostatement.fetch.php PDO::FETCH_NUM: 返回一个数组,该数组由结果集中返回的列号索引,从第 0 列开始
    • 哦,好的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多