如何计算在数据库表中找到的记录数?

时间:2014-12-08 作者:hitesh

我是wordpress开发的新手;尝试学习插件开发。我创建了一个自定义表,希望从中显示找到的记录数。我尝试了下面的代码,但不管表中的行数是多少,结果总是显示1。

//To show number of rows in table
    function DB_Tables_Rows()
    {
      global $wpdb;
      $table_name = $wpdb->prefix . \'mydata\';
     $count_query = "select count(*) from $table_name";
         $num = $wpdb->get_var($count_query);

         $num = $wpdb->num_rows;

        echo  $wpdb->num_rows . \'Rows Found\';


    }

2 个回复
最合适的回答,由SO网友:Parth Kumar 整理而成

为什么不直接回显$num,因为它已经包含了行数。。。这是经过编辑的部分。。

//To show number of rows in table
  function DB_Tables_Rows()
{
    global $wpdb;
    $table_name = $wpdb->prefix . \'mydata\';
    $count_query = "select count(*) from $table_name";
    $num = $wpdb->get_var($count_query);

    echo  $num . \'Rows Found\';


}

SO网友:Mayeenul Islam

方式#1

您可以使用WordPress方式$wpdb 类别:

<?php
global $wpdb;
$table_name = $wpdb->prefix . \'mydata\';
$my_query = $wpdb->get_results( "SELECT * FROM $table_name" );
echo $my_query->num_rows;
法典说:

由于此函数使用$wpdb->query() 函数所有类变量都已正确设置。结果计算为\'SELECT\' 查询将存储在$wpdb->num_rows.

方式#2

也可以通过PHP方式进行计数。只需使用通用查询,并使用PHPcount() 作用

<?php
global $wpdb;
$table_name = $wpdb->prefix . \'mydata\';
$my_query = $wpdb->get_results( "SELECT * FROM $table_name" );
$num_rows = count( $my_query ); //PHP count()
echo $num_rows;
参考号:http://php.net/manual/en/function.count.php

虽然这是我的最爱,但正如@MarkKaplen所说:

在PHP中计算数组大小与让mysql为您计算行之间存在巨大的性能差异。您不太可能在小数据上注意到它,但对于大表,您会注意到它

所以我也愿意坚持$wpdb 方式<;3.

结束

相关推荐

必须使用插件自动加载器:如何正确使用get_plugins()?

我的autoloader类负责加载必须使用的插件,这些插件不位于mu-plugins 文件夹要定位它们,我需要使用get_plugins() 作用According to Codex, 该函数接受一个参数:$plugin\\u folder(string)(可选):单个插件文件夹的相对路径。我的文件层次结构如下所示:|-- /mu-plugins | |-- autoload.php // only includes wpmu/autoload.php&#