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 Answer
1

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

wpdb

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *