Here's the basic template for this kind of thing, using built-in php functions (assuming old-style mysql, but similar using other database back-ends, or higher-level libraries).  In this example, errors are handled by throwing exceptions, but that's just one way to do it.
- Connect to the database
- Make sure connection was successful
- Run the query
- Make sure the query didn't fail for some reason (usually a SQL syntax error).  If it did fail, find out why and handle that error
- Check that the query returned at least one row (zero rows typically is a special case)
- Loop over the returned rows, doing whatever it is you need done.
The exception classes would need to be defined (they're the only non-built-in syntax here,  but you shouldn't throw plain-vanilla Exceptions).
Example Code:
<?PHP
//try to connect to your database.
$conn = mysql_connect(...);
//handle errors if connection failed.
if (! $conn){
    throw new Db_Connect_Error(..); 
}   
// (try to) run your query.
$resultset = mysql_query('SELECT ...');
//handle errors if query failed.  mysql_error() will give you some handy hints.
if (! $resultset){ 
    // probably a syntax error in your SQL, 
    // but could be some other error
    throw new Db_Query_Exception("DB Error: " . mysql_error()); 
}
//so now we know we have a valid resultset
//zero-length results are usually a a special case    
if (mysql_num_rows($resultset) == 0){   
    //do something sensible, like tell the user no records match, etc....
}else{
    // our query returned at least one result. loop over results and do stuff.
    while($row = mysql_fetch_assoc($resultset)){
        //do something with the contents of $row
    }
}