Foros del Web » Programando para Internet » PHP »

Cómo mostrar mensaje-error si no encuentra en SELECT

Estas en el tema de Cómo mostrar mensaje-error si no encuentra en SELECT en el foro de PHP en Foros del Web. Hola de nuevo. Tengo una base de datos. Por medio de un formulario se introduce el nombre de la persona cuyos datos queremos ver (puede ...
  #1 (permalink)  
Antiguo 01/12/2005, 12:43
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Cómo mostrar mensaje-error si no encuentra en SELECT

Hola de nuevo.
Tengo una base de datos.
Por medio de un formulario se introduce el nombre de la persona cuyos datos queremos ver (puede ser que exista más de 1 registro con el mismo nombre).
Si esa persona no existe en la BDD, el php acaba bien pero no saca nada.
Mi pregunta es: ¿qué he de hacer para mostrar un mensaje informando de "persona no encontrada".

Mi código es:
$sql="select variable1 FROM persona WHERE nombre like '%$nombre%";
$result=mysql_db_query("excel",$sql) or die (mysql_error());
while ($row=mysql_fetch_array($result))
{
echo '<tr><td><strong>Nombre: </strong>'.$row["nombre"].'</td></tr>';
echo '<tr><td><strong>Apellido1: </strong>'.$row["apellido1"].'</td></tr>';
}
mysql_free_result($result);
mysql_close();
  #2 (permalink)  
Antiguo 01/12/2005, 14:08
 
Fecha de Ingreso: abril-2005
Mensajes: 139
Antigüedad: 19 años
Puntos: 1
Podrias poner algo asi

Código PHP:

$sql
="select variable1 FROM persona WHERE nombre like '%$nombre%";
$result=mysql_db_query("excel",$sql) or die (mysql_error());

// simplemente se le pone un if contando el numero de resultados
if (mysql_num_rows($result)>0){ 

while (
$row=mysql_fetch_array($result))
{
echo 
'<tr><td><strong>Nombre: </strong>'.$row["nombre"].'</td></tr>';
echo 
'<tr><td><strong>Apellido1: </strong>'.$row["apellido1"].'</td></tr>';
}
mysql_free_result($result);
mysql_close();

    }

else{die(
"Persona no encontrada");} 

Hay muchas maneras esta es la que se me ha ocurrido ahora revisa la funcion die() es la primera vez que la uso

Ciao y suerte
  #3 (permalink)  
Antiguo 01/12/2005, 14:32
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 2 meses
Puntos: 0
Básicamente la función que necesitás es mysql_num_rows, que te devuelve la cantidad de filas devueltas por la consulta. Si es cero, entonces no encontró nada.

http://php.net/mysql_num_rows

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #4 (permalink)  
Antiguo 02/12/2005, 01:16
 
Fecha de Ingreso: marzo-2004
Mensajes: 117
Antigüedad: 20 años
Puntos: 0
Muchas gracias a los 2, me ha funcionado perfecto.
Tambien me habeis descubierto la página donde buscar instrucciones, desde luego que es muy útil y la utilizaré.
Saludos.
Jordi.
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 17:24.