3

I understand how to do simple queries and display results using $wpdb. This is my process:

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

Now, what if my query is more complicated, where there is a COUNT(*) involved, like so:

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

This should return:

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

Would it be OK if I do something like this?

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

and then, to get the count,

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

EDIT: Turns out, it's actually just this simple, I don't have to do anything else $row[x] will work.

  • 1
    I'm not sure what you are trying to ask. By OK do you mean Can my query be improved? or Will this query work? – v0idless Nov 4 '11 at 16:32
  • Will this query work? – 21zna9 Nov 4 '11 at 16:50
  • Nevermind, so it does work. – 21zna9 Nov 5 '11 at 0:21
7

You can just use echo $wpdb->get_var( $sql ):

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.