Re: how to determine if a mysql query returns an empty set?

From: Date: Fri, 24 Apr 2009 11:11:42 +0000
Subject: Re: how to determine if a mysql query returns an empty set?
References: 1  Groups: php.general php.general 
Request: Send a blank email to php-general+get-291916@lists.php.net to get a copy of this message
Is there a way to determine if a mysql query returns an empty set? I am selecting 10 results at a time with a limit statement and need to know when i've ran out of rows. I've only got 2 rows in the database, so when I start with row 10, it returns an empty set. I have the following code: //running this query gives "Empty set (0.00 sec)" in mysql console. $get_requests = "select form_id, full_name, email, phone, division, location, date_format(time_of_request, '%m-%d-%Y %r') as time_of_request, contact_time, problem, accepted_by, date_format(accepted_time, '%m-%d-%Y %r') as accepted_time, resolution, date_format(resolution_time, '%m-%d-%Y %r') as resolution_time from form where ((stage = 'Closed') && (email = 'awilliam' )) order by resolution_time limit 10 , 10" //checks to see if it returns nothing, then print that you are at the end of the results
               if (!$mysqli_get_requests = mysqli_query($mysqli,$get_requests))
                       {
                       echo "You have reached the end of the results.
                       Please press the back button.
                       <form action=/helpdesk/login.php method=post><input
                       type=submit value=Back
                       name=submit></form></body></html>";
                       exit;
                               }
but that doesn't work, because I guess an empty set is not false, 0, or NULL?
Hello, Something better than *_num_rows() : try a do...while loop : $res = mysqli_result($sql); if ($data = mysqli_fetch_*($res)) { // At least one row was found
    do {
       //....
    } while ($data = mysqli_fetch_row);
} else {
    // 0 rows
}

« previous php.general (#291916) next »