De ce nu funcționează COUNT(*) cu $wpdb în WordPress

4 nov. 2011, 18:18:47
Vizualizări: 14.7K
Voturi: 5

Înțeleg cum să fac interogări simple și să afișez rezultatele folosind $wpdb. Acesta este procesul meu:

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

Acum, dacă interogarea mea este mai complexă și include COUNT(*), ca în exemplul următor:

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

Aceasta ar trebui să returneze:

--------+------------+----------+
Post ID | Titlu Post | Count(*) |
--------+------------+----------+
1       |  "Postul meu" |   6
2       |  "Bună..."|   5

Este OK să fac astfel?

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

și apoi, pentru a obține numărul,

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

EDIT: Se pare că este chiar atât de simplu, nu trebuie să fac nimic altceva, $row[x] va funcționa.

3
Comentarii

Nu sunt sigur ce încerci să întrebi. Prin OK te referi la Îmi poate fi îmbunătățită interogarea? sau Va funcționa această interogare?

v0idless v0idless
4 nov. 2011 18:32:12

Va funcționa această interogare?

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

Nu mai contează, deci funcționează.

21zna9 21zna9
5 nov. 2011 02:21:34
Toate răspunsurile la întrebare 1
0

Poți folosi simplu echo $wpdb->get_var( $sql ):

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

5 nov. 2011 02:57:40