wpdb get_results() returns only 2 rows

I am trying to create custom admin widget to present how many users has registered within last days. I have created function as below:

function mdbootstrap_add_dashboard_recent_users(){ 
global $wpdb;

$query = "
    SELECT count(*) as counter, DATE(wp_users.user_registered) as regdate
    FROM wp_users 
    GROUP BY DATE(wp_users.user_registered) 
    ORDER BY DATE(wp_users.user_registered) desc";

$posts = $wpdb-get_results($query,OBJECT);
print_r( $posts);
 }

However for some reason it's returning only 2 rows:

Array ( [0] = stdClass Object ( [counter] = 1 [regdate] = 2016-01-12 ) [1] = stdClass Object ( [counter] = 3 [regdate] = 2016-01-04 ) )

Which BTW shows wrong values, as the same query run from PHP MyAdmin gives result as follow:

  • counter regdate
  • 16 2016-01-13
  • 37 2016-01-12
  • 51 2016-01-11
  • 25 2016-01-10
  • 21 2016-01-09
  • 26 2016-01-08
  • 24 2016-01-07
  • 24 2016-01-06
  • 18 2016-01-05
  • 20 2016-01-04
  • 5 2016-01-03

I was looking for similar issue however most of the topics covers issue with only 1 row when people use get_row instead of get_results. I have played with different parameters like ARRAY_N, OBJECT, ARRAY_A but didn't work - query always returns 2 rows.

Topic wp-query wpdb database query Wordpress

Category Web


You can try below query

SELECT (
    SELECT count(*) 
    FROM wp_users as temp 
    WHERE DATE(temp.user_registered) = DATE(wp_users.user_registered)
    ) as counter, 
wp_users.*
FROM wp_users

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.