Aqui está a maneira correta de fazer as coisas:
<?PHP
$sql = 'some query...';
$result = mysql_query($q);
if (! $result){
throw new My_Db_Exception('Database error: ' . mysql_error());
}
while($row = mysql_fetch_assoc($result)){
//handle rows.
}
Observe a verificação em (! $result) -- se seu $result for um booleano, certamente é falso e significa que houve um erro no banco de dados, significando que sua consulta provavelmente estava incorreta.