Wordpress函数/插件来计算mySQL表中的行数

时间:2014-10-13 15:44:18

标签: php mysql sql wordpress

我的Wordpress数据库中有附加表,其中包含公司列表,链接,描述等。我使用此插件(http://wpdatatables.com/)在WP中呈现表格,效果很好。

它没有的一个功能是计算表中数字条目(行)的方法。我希望得到这个计数并将其显示在wordpress的页面中。例如,计算表X中的所有行并在此处显示(使用短代码或其他内容),这样我就可以拥有"表X有1,912家公司"。

我认为这是一种入门方式,但不确定它是否适合我需要的工作,然后我不确定如何将结果真正地发布到帖子/页面中。< / p>

<?php
$myvar = $wpdb->get_results("SELECT COUNT(*) FROM company_table WHERE name=*");

if($myvar == 0)
{
// no rows, do whatever.
}
else
{
// at least 1 row, do something else.
}
?>

或者这个:

global $wpdb;
$wpdb->get_results( 'SELECT COUNT(*) FROM table_name' );
echo  $wpdb->num_rows . 'Rows Found';

如何从这一点(或其他一些推荐的起点)获取行数并将其显示在页面上?

更新

好吧,我制作了一个包含这样的短代码的插件,可以让它在我的页面中正确显示,但它渲染的行数错误。它只显示1行,应该是几百行。

function row_count_shortcode() {
global $wpdb;
$wpdb->get_results( 'SELECT COUNT(*) FROM inno_db' );
echo  $wpdb->num_rows . 'Rows Found';
}
add_shortcode( 'row_count', 'row_count_shortcode' );

知道问题可能是什么?

由于

2 个答案:

答案 0 :(得分:3)

get_results()更改为get_var()

$num_rows = $wpdb->get_var('SELECT COUNT(*) FROM inno_db');

答案 1 :(得分:0)

尝试使用num_rows()将始终返回1(假设SQL有效),即使计数为零,因为SELECT COUNT(*) ...查询中的SQL结果集将始终返回一个结果集行。

您需要实际读取结果集中的COUNT值,或者只是定期SELECT * ...(或者更好地在InnodDB表上实际SELECT primary_key ...)并使用num_rows()。不要同时使用COUNT()num_rows()