web-dev-qa-db-fra.com

Comment $ wpdb gère-t-il COUNT (*)

Je comprends comment faire des requêtes simples et afficher les résultats avec $ wpdb. Ceci est mon processus:

<?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 } ?> 

Maintenant, que se passe-t-il si ma requête est plus compliquée, où il y a un COUNT (*) impliqué, comme ceci:

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

Cela devrait retourner:

--------+------------+----------+
Post ID | Post Title | Count(*) |
--------+------------+----------+
1       |  "My post" |   6
2       |  "Hello..."|   5

Serait-ce OK si je fais quelque chose comme ça?

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

et puis, pour obtenir le compte,

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

EDIT: En fait, c'est aussi simple que cela, je n'ai rien d'autre à faire que $ row [x] fonctionnera.

3
21zna9

Vous pouvez simplement utiliser echo $wpdb->get_var( $sql ):

http://codex.wordpress.org/Class_Reference/wpdb

7
scribu