La otra persona estaba usando PDO, que agrega una capa de abstracción a mysqli (hace más cómodo y seguro el acceso a datos, no sé si afecta la eficiencia. En general se recomienda usar PDO en vez de mysqli a secas).
Lo que yo hago es esto:
Código PHP:
Ver original$resul=$db_conn->prepare( $query );
$resul->execute();
echo "n vale:".$n;
$horas = $resul->fetchALL(PDO::FETCH_ASSOC);
O sea $resul en la primera línea es un objeto con una consulta preparada.
Y en la segunda línea ejecutas la consulta y el objeto se carga con el resultado de la consulta.
Yo creo que te falta execute();