Comunidad de diseño web y desarrollo en internet online

Mostrar mensaje en caso de que while sea = a false

Citar            
MensajeEscrito el 30 May 2012 07:56 pm
Hola amigos de Cristalab!!!

Tengo una consulta en la que debo mostrar una serie de datos por medio de un while. Hasta aquí perfecto, los datos se muestran según mi criterio de búsqueda. El tema es que quiero que, en caso de que no existan registros, el script muestre el mensaje de que "no existen registros". Es esto último lo que no me funciona. Primero intenté poner un if... else... dentro del while pero al ejecutar la consulta en caso de "verdadero" mostraba los datos pero en caso de "falso" no mostraba el mensaje. Pensando después en que el while se ejecuta sólo si la sentencia es verdadera, moví el if... else... a continuación del while pero ahora el mensaje de que no hay datos nunca desaparece, aún cuando sí encuentre registros y los muestre.

En definitiva, lo que quiero es mostrar el mensaje de que no hay datos en caso de que el while no encuentre registros.

Código PHP :

$consulta = "select tabla1.*, tabla2.*
from tabla1, tabla2
where tabla1.campo1 = tabla2.campo1 and 
tabla2.campo1 = '".($_SESSION['usuario'])."'
order by tabla1.campo3 desc";
$resultado = mysql_query($consulta) or die(mysql_error());
while($resultado_consulta = mysql_fetch_array($resultado)) {
echo $resultado_consulta['campo1'];
echo $resultado_consulta['campo2'];
}
//código para mostrar en caso de que no existan datos en la bd
if(empty($resultado_consulta)) {
echo "no existen registros";
}
El problema es que una vez fuera del while $resultado_consulta pierde su contenido. Por ejemplo, con un echo $resultado_consulta['campo1']; dentro del while me muestra el dato, pero fuera del mismo ya no. Es por eso que mi if muestra siempre el mensaje de error, porque en efecto al estar fuera del while la variable está vacía. Estoy seguro que el error está en la sintaxis pero no logro dar con la forma correcta.

Agradeciendo de antemano vuestra ayuda,
Buena Caza y Largas Lunas.

Por eareddhel

83 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 May 2012 11:15 pm
Pues nada más haz uso de mysql_num_rows() para saber cuántos registros devuelve la consulta que acabas de ejecutar.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 30 May 2012 11:42 pm
Gracias DriverOp por contestar. He intentado seguir tu consejo sin éxito probando diferentes combinaciones pero nada. ¿Dónde recomiendas tú que use mysql_num_rows()? Aún no me queda claro.

Gracias de antemano por la amabilidad.

Por eareddhel

83 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 May 2012 11:53 pm

Código PHP :

$resultado = mysql_query($consulta) or die(mysql_error());
if (mysql_num_rows($resultado) > 0) {
while($resultado_consulta = mysql_fetch_array($resultado)) {
echo $resultado_consulta['campo1'];
echo $resultado_consulta['campo2'];
} // while
} else {
  echo "La consulta no devolvió resultados";
}

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 May 2012 02:34 am
¡Maravilloso! Mil gracias DriverOp. Quedó fenomenal. Se agradece una vez más la amabilidad y la buena voluntad de ayudar.

:D

Por eareddhel

83 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.