Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/11/2011, 11:34
MoebiusDigital
 
Fecha de Ingreso: junio-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 262
Antigüedad: 16 años, 11 meses
Puntos: 1
Respuesta: Problema raro en MySQL

Hola, gnzsoloyo. El while sólo se ejecuta si la condición de entrada es verdadera:

Cita:
El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas, tanto como la expresión while se evalúe como TRUE. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como FALSE desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.
Fuente: http://php.net/manual/es/control-structures.while.php.

En cambio do ... while sí se ejecuta por lo menos una vez.

El problema que menciona nuestro amigo guidodipaolo no se debe a que php esté entrando en el bucle, sino que mysql_fetch_array da error si el select no devolvió ninguna fila.

Una alternativa es la que propusiste vos: verificar primero si se devolvió alguna fila. La otra es evitar que mysql_fetch_array muestre el error de la siguiente manera:

Código PHP:
Ver original
  1. while($row=@mysql_fetch_array($select))

¡Ah! un consejo, gnzsoloyo. No uses <? para iniciar una secuencia de PHP ya que no funciona en todos los servidores. Es aconsejable usar <?php.

Saludos!
Pablo
__________________
Moebius Digital | La pieza que faltaba
Diseño web | Web hosting