Как $wpdb обрабатывает COUNT(*)

4 нояб. 2011 г., 18:18:47
Просмотры: 14.7K
Голосов: 5

Я понимаю, как выполнять простые запросы и выводить результаты с помощью $wpdb. Вот мой процесс:

<?php $sql = 'select * from wp_votes;'; ?>
<?php $votes = $wpdb->get_results($sql); ?>
<?php if ( !empty ( $votes ) ) { ?>
     <?php foreach ( $votes as $vote ) { ?> 
          <td><?php echo $vote->id; ?></td>
          <td><?php echo $vote->post_id; ?></td>
          <td><?php echo $vote->date_voted; ?></td>
     <?php } ?> 
<?php } ?> 

Теперь, что если мой запрос более сложный, с использованием COUNT(*), например:

<?php $sql = 'select wp_votes.post_id, wp_posts.post_title, count(*) from wp_votes INNER JOIN wp_posts ON wp_votes.post_id = wp_posts.id group by wp_votes.post_id order by count(*) desc;'; ?> 

Этот запрос должен вернуть:

--------+------------+----------+
ID поста | Заголовок | Количество |
--------+------------+----------+
1       |  "Мой пост"|   6
2       |  "Привет..."|   5

Будет ли нормально, если я сделаю так?

<?php $wpdb->get_results($sql, ARRAY_N); ?> 

и затем, чтобы получить количество:

<?php echo $row[2]; ?> 

РЕДАКТИРОВАТЬ: Оказывается, это действительно так просто, мне не нужно делать ничего больше - $row[x] будет работать.

3
Комментарии

Я не совсем понимаю, о чем вы спрашиваете. Под OK вы имеете в виду Можно ли улучшить мой запрос? или Будет ли этот запрос работать?

v0idless v0idless
4 нояб. 2011 г. 18:32:12

Будет ли этот запрос работать?

21zna9 21zna9
4 нояб. 2011 г. 18:50:25

Неважно, значит он работает.

21zna9 21zna9
5 нояб. 2011 г. 02:21:34
Все ответы на вопрос 1
0

Вы можете просто использовать echo $wpdb->get_var( $sql ):

https://developer.wordpress.org/reference/classes/wpdb/

5 нояб. 2011 г. 02:57:40