5

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.

3
  • 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? Commented Nov 4, 2011 at 16:32
  • Will this query work? Commented Nov 4, 2011 at 16:50
  • Nevermind, so it does work. Commented Nov 5, 2011 at 0:21

1 Answer 1

8

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

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.