Foros del Web » Programando para Internet » PHP »

Duda: Uso de operador !== con mysql_fetch_array()

Estas en el tema de Duda: Uso de operador !== con mysql_fetch_array() en el foro de PHP en Foros del Web. Que tal. Tengo una duda que, aunque fácil (supongo) se me presentó y no supe resolver. Cuando uno guarda una el resultado de una consulta ...
  #1 (permalink)  
Antiguo 20/06/2007, 09:35
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Pregunta Duda: Uso de operador !== con mysql_fetch_array()

Que tal.

Tengo una duda que, aunque fácil (supongo) se me presentó y no supe resolver.

Cuando uno guarda una el resultado de una consulta en mysql_fetch_array($consulta), para verificar si la consulta no devolvió nada lo que hace es lo siguiente:
Código PHP:
$resultado mysql_fetch_array($consulta);

//Pregunto si no devolvió nada
if( !( $resultado ) )
{
     
//No hay valores

Pero que pasa si lo que quiero validar es todo lo contrario, es decir, si quiero preguntar ¿Devolvió algún resultado la consulta? ¿sería valido lo siguiente?
Código PHP:
$resultado mysql_fetch_array($consulta);

//Pregunto si devolvió algo
if( $resultado !== false )
{
     
//Si hay valores

Es decir, es correcto usar "!==" o debería ser más bien "!=" o ninguno es correcto?

Gracias
  #2 (permalink)  
Antiguo 20/06/2007, 09:38
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Hola

Lo más apropiado a la hora de realizar una consulta a la base de datos es contar las filas devueltas para saber si se obtuvieron resultados. Para ello utiliza la función: mysql_num_rows($consulta).

Código PHP:
if(mysql_num_rows($consulta) != 0){ 
     
// Hubieron resultados
     // Aqui ya puedo utilizar el mysql_fetch_array() sin reparo
}else{
     
// No hubieron resultados

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #3 (permalink)  
Antiguo 20/06/2007, 09:39
Avatar de karemlis  
Fecha de Ingreso: agosto-2006
Mensajes: 153
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Yo Mcereo Q Deberia Ser != Seria Lo Mas Logico No...al Finde Cuentas Estas Haciendo Una Comparacion
  #4 (permalink)  
Antiguo 20/06/2007, 09:53
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Cita:
Yo Mcereo Q Deberia Ser != Seria Lo Mas Logico No...al Finde Cuentas Estas Haciendo Una Comparacion
Si bueno, lo mismo pienso, pero igual estoy dudoso, por eso abro la pregunta para ver si alguien lo sabe con certeza

RUX, tienes razón, ahora que lo pienso esa es una forma, pero igual, si es posible plantearlo así como yo digo, me pareceria más sencillo, por el hecho de que solo tendria que almacenar los datos con mysql_fetch_array, si lo hago así como tu dices, tendría que agregar otra linea mas para colocar el mysql_num_rows.

Es bastante válido, claro esta, pero si se pudiera hacer así como yo digo sería más sencillo.

Yo probé utilizando mysql_fetch_array y el operador !== y me funcionó, pero no sé si es la manera correcta o si eventualmente pueda dar resultados erróneos o inesperados, dependiendo de la consulta, el servidor o la versión de PHP.

Alguien sabe si se puede?
  #5 (permalink)  
Antiguo 20/06/2007, 09:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Duda: Uso de operador !== con mysql_fetch_array()

Tienes que ver que mysql_fetch_array, regresa un arreglo cuando es una consulta valida o false cuando hay un error, ojo cuando hay error no cuando no hay resultados en cuyo caso seria un array vacio.

Es por eso que es mejor utilizar mysql_num_rows, asi puedes saber (sin extraer los datos que es mas costoso a nivel recurso) si la consulta tiene resultados, y si los tiene ya los puedes extraer.

Saludos.
  #6 (permalink)  
Antiguo 20/06/2007, 10:07
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Okey, no quiero insistir con esto de utilizar el mysql_fetch_array, por los momentos utilizaré el mysql_num_rows, pero sin embargo, me quedo con la duda de si se puede o no hacer con el mysql_fetch_array

GatorV, respecto a tu comentario:

Cita:
Tienes que ver que mysql_fetch_array, regresa un arreglo cuando es una consulta valida o false cuando hay un error, ojo cuando hay error no cuando no hay resultados en cuyo caso seria un array vacio.
Permíteme diferir al respecto con la siguiente cita, extraida del manual de PHP:

Cita:
mysql_fetch_array()

Devuelve una matriz que corresponde a la sentencia extraida, o falso si no quedan más filas.
Yo sé que se puede validar de la forma
Código PHP:
if( !($resultado)  )
{
     
//no hay resultados

Lo que no sé es si se pueda hacer de la forma contraria

Código PHP:
if ($resultado !== false)
{
     
//Si hay resultados

Voy a hacerlo con mysql_num_rows, pero seria bueno saber si de esta ultima forma tambien se puede....si alguien sabe, espero su comentario...saludos
  #7 (permalink)  
Antiguo 20/06/2007, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Duda: Uso de operador !== con mysql_fetch_array()

Como te explique es mas costoso usar mysql_fetch_array si no sabes si la consulta regreso resultados, por eso es mejor utilizar mysql_num_rows antes de, y si si puedes usar !==, para comparar si $resultado es otra cosa que no sea un booleano false.

Saludos.
  #8 (permalink)  
Antiguo 20/06/2007, 10:20
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Hola otra vez,

En tal caso se utilizaría "!=" en lugar de "!==" pero con esto lo que intentas es verificar si la función tuvo éxito TRUE para sí FALSE para no, con lo cúal me imagino que lo que tu quieres es verificar si la función tiene algún elemento como resultado, que lo más apropiado creo que seria usar algo como:
Código PHP:
if(count(mysql_fetch_array($resultado)) != 0){ 
// Existen datos
}else{ 
// No existen datos

Aunque no lo he probado.

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #9 (permalink)  
Antiguo 20/06/2007, 10:55
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Duda: Uso de operador !== con mysql_fetch_array()

Hmmm....esa última me gusta más y no me arrojaría resultados inesperados.

GatorV, ya estoy claro respecto a por qué usar mysql_num_rows, sigo preguntando es a modo de cultura general, para no quedarme con la duda pues.

Saludos
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 01:23.