2014-10-13 4 views
1

У меня есть таблица дополнений в моей базе данных Wordpress, которая содержит списки компаний, ссылку, описание и т. Д. Я использую этот плагин (http://wpdatatables.com/), чтобы отобразить таблицу в WP, и он отлично работает.Wordpress function/plugin для подсчета количества строк в таблице mySQL

Одна функция, которой он не обладает, - это способ подсчета числа записей (строк) в таблице. Я хотел бы получить этот счет и отобразить его на странице Wordpress. Например, подсчитайте все строки в таблице X и отобразите здесь (с помощью короткого кода или что-то еще), чтобы я мог иметь «ТАБЛИЦА X имеет 1 912 компаний».

Я натолкнулся на это как способ начать работу, но не уверен, что он будет работать на то, что мне нужно, а затем я не уверен, как на самом деле получить результат в сообщение/страницу.

<?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'; 

Как я могу получить количество строк и отображать его на странице с этой точки (или какой-то другой рекомендовал начал пункт)?

UPDATE

Хорошо, я сделал плагин с шорткодом, как это и может заставить его появиться на моей странице правильной, но это делает неверное число строк. Он показывает только 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

Вы смотрели в [шорткоды] (http://codex.wordpress.org/Shortcode_API)? – EvilZebra

+0

Да ... Я думаю, что сейчас у меня есть короткий код (нужно обновить вопрос), но он возвращает 1 строку вместо фактического числа. – jonmrich

+0

Попробуйте '$ wpdb-> get_var()' вместо '$ wpdb-> get_results()'. Edit: Это было не очень понятно, но это должно быть '$ num_rows = $ wpdb-> get_var ('SELECT COUNT (*) FROM inno_db');' – EvilZebra

ответ

3

Изменение get_results() в get_var()

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

Попытка использовать num_rows() всегда будет возвращать 1 (если предположить, что SQL является действительным), даже если счетчик был равен нулю, потому что ваш результат SQL набор из SELECT COUNT(*) ... запроса всегда возвращает результирующий набор с одной строкой.

Вы должны фактически прочитать значение COUNT из результирующего набора или просто делать регулярные SELECT * ... (или лучше на самом деле SELECT primary_key ... на InnodDB таблице) и использовать num_rows(). Не используйте как COUNT(), так и num_rows().

Смежные вопросы