Come gestisce $wpdb COUNT(*)

4 nov 2011, 18:18:47
Visualizzazioni: 14.7K
Voti: 5

Capisco come eseguire query semplici e visualizzare i risultati usando $wpdb. Questo è il mio processo:

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

Ora, cosa succede se la mia query è più complessa, con un COUNT(*) coinvolto, come questa:

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

Questo dovrebbe restituire:

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

Sarebbe corretto se facessi qualcosa del genere?

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

e poi, per ottenere il conteggio,

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

AGGIORNAMENTO: A quanto pare, è davvero così semplice, non devo fare nient'altro, $row[x] funzionerà.

3
Commenti

Non sono sicuro di cosa tu stia cercando di chiedere. Con OK intendi La mia query può essere migliorata? o Questa query funzionerà?

v0idless v0idless
4 nov 2011 18:32:12

Questa query funzionerà?

21zna9 21zna9
4 nov 2011 18:50:25

Non importa, quindi funziona.

21zna9 21zna9
5 nov 2011 02:21:34
Tutte le risposte alla domanda 1
0

Puoi semplicemente usare echo $wpdb->get_var( $sql ):

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

5 nov 2011 02:57:40