我的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' );
知道问题可能是什么?
由于
答案 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()
。