Problema con db_fetch_array ignorando la primera fila devuelta

Hola,

Tengo un problema con un buscador que he programado para Drupal y donde el resultado primero de la query no es devuelto correctamente.

El código sería:

$results = db_query($sql);

if ( !db_result($results) ){
print "No hay resultados para esta búsqueda";
}

while ($result = db_fetch_array($results)){
print $result["nid"];
}

La historia es que cuando la query devuelve una sola fila no pinta ningún nid. Si la query devuelve más de una fila, pinta todos los nids a excepción del primero.

¿Alguien lo entiende? ¿Alguien conoce la solución?

Gracias por adelantado