Foros del Web » Programando para Internet » PHP »

Negar While en PHP

Estas en el tema de Negar While en PHP en el foro de PHP en Foros del Web. Buen día! Me gustaría saber cómo negar una expresión en PHP. Mi sentencia es esta: while ($registro = mysql_fetch_array($consulta)) { //Instrucciones } Lo que necesito ...
  #1 (permalink)  
Antiguo 26/05/2008, 12:41
Avatar de Laika6  
Fecha de Ingreso: marzo-2008
Mensajes: 41
Antigüedad: 16 años, 1 mes
Puntos: 0
Negar While en PHP

Buen día!

Me gustaría saber cómo negar una expresión en PHP.

Mi sentencia es esta:

while ($registro = mysql_fetch_array($consulta))
{
//Instrucciones
}


Lo que necesito poner es un MIENTAS NO OCURRA ESTO, o sea, que mientras no encuentre nada en ese arreglo, ejecute ciertas instrucciones... pero no he podido encontrar la manera.

He intentado utilizar el operador lógico "!" de diversas formas, pero ninguna ha funcionado.

Les agradecería cualkier tipo de ayuda. Saludos y gracias!
  #2 (permalink)  
Antiguo 26/05/2008, 12:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Negar While en PHP

while (($registro = mysql_fetch_array($consulta)) !== true)
{
//Instrucciones
}
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/05/2008, 12:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Negar While en PHP

Hola Laika6,

El problema es que mysql_fetch_array te regresa un arreglo, no un booleano por lo que no puedes negarlo directamente. Para comprobar si un arreglo está vacío debes de usar count:
Código PHP:
if( count$arreglo ) == ) {
   
// arreglo vacio

Saludos.
  #4 (permalink)  
Antiguo 26/05/2008, 13:37
Avatar de Laika6  
Fecha de Ingreso: marzo-2008
Mensajes: 41
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Negar While en PHP

No logro hacer que funcione...

Utilizé la primera opción, y me parece que algo se satura, porque jamás termina de cargar la página para ver el resultado:

while (($registro = mysql_fetch_array($consulta)) != true)
{
//Instrucciones
}

Utilizé la segunda, coloqué el contador de esta manera:

if( count( $registro = mysql_fetch_array($consulta)) == 0 )
{
//instrucciones
}

Y no imprime nada en caso de que no haya información en la bd (que son las instrucciones que kiero ejecutar)... Crisis...
  #5 (permalink)  
Antiguo 26/05/2008, 13:43
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Negar While en PHP

Prueba asi:

Código PHP:
$registro mysql_fetch_array($consulta);
if (
count($registro) == 0)
{


aunque si lo que quieres es hacer algo mientras no encuentre resultados, yo diria que uses mysql_num_rows

Código PHP:
$consulta mysql_query("SELECT * FROM tabla");
if (
mysql_num_rows($consulta) == 0){
 
//Aqui cuando no hay resultados
}else{
 
//aqui cuando los hay

Saludos!
__________________
Sin Ideas
  #6 (permalink)  
Antiguo 26/05/2008, 14:05
Avatar de Laika6  
Fecha de Ingreso: marzo-2008
Mensajes: 41
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Negar While en PHP

Muchas gracias.

Finalmente "mysql_num_rows" hizo lo que necesitaba.

Saludos y gracias a todos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:33.