Foros del Web » Programando para Internet » PHP »

Cambiar mensaje undefined

Estas en el tema de Cambiar mensaje undefined en el foro de PHP en Foros del Web. Hola a todos! He buscado la solución en el foro pero no acierto a encontrarla: Tengo una base de datos a la que le hago ...
  #1 (permalink)  
Antiguo 21/10/2010, 13:17
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Cambiar mensaje undefined

Hola a todos! He buscado la solución en el foro pero no acierto a encontrarla:

Tengo una base de datos a la que le hago una consulta para buscar una ficha de un socio. Ocurre que hay números de socio que no existen en la base y, lógicamente, devuelve el resultado como "undefined".
Esta consulta la gestiono desde un archivo PHP.

La pregunta es cómo puedo variar el mensaje "undefined" por otro personalizado como, por decir algo, "inexistente" o "no encontrado".

Gracias anticipadas
__________________
www.armand.cat
  #2 (permalink)  
Antiguo 22/10/2010, 10:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 110
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Cambiar mensaje undefined

Cita:
Iniciado por osiris Ver Mensaje
Hola a todos! He buscado la solución en el foro pero no acierto a encontrarla:

Tengo una base de datos a la que le hago una consulta para buscar una ficha de un socio. Ocurre que hay números de socio que no existen en la base y, lógicamente, devuelve el resultado como "undefined".
Esta consulta la gestiono desde un archivo PHP.

La pregunta es cómo puedo variar el mensaje "undefined" por otro personalizado como, por decir algo, "inexistente" o "no encontrado".

Gracias anticipadas
podrías publicar la consulta?. Gracias
  #3 (permalink)  
Antiguo 22/10/2010, 16:42
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Cambiar mensaje undefined

Hola:

En un documento php tengo:

include("conexion.php");
$link=Conectarse();

$numero=$_POST['numero']; <--- mando la variable desde flash



$result=mysql_query("SELECT * FROM `tabla` WHERE `N_SOCIO` = $numero ",$link);




while($row = mysql_fetch_array($result)){




$res=$row['N_SOCIO'];
$res1=$row['NOMBRE'];
$res2=$row['APELLIDO1'];
$res3=$row['APELLIDO2'];

}
// Devuelve los valores al documento en flash

echo "&res=".$res;
echo utf8_encode("&res1=".$res1);
echo utf8_encode("&res2=".$res2);
echo utf8_encode("&res3=".$res3);

Desde el formulario de consulta mando el número que hay que buscar en la base. Lo que ocurre és que puede suceder que un número no exista i entonces me responde como "undefined" a los valores devueltos.
Simplemente quería saber si hay forma de variar el mensaje por otro personalizado.
No sé si eso es posible.
Gracias.
__________________
www.armand.cat
  #4 (permalink)  
Antiguo 22/10/2010, 16:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Cambiar mensaje undefined

Tu problema no tiene nada que ver con MySQL sino con PHP.
MySQL simplemente le está devolviendo a PHP una tabla vacía, en la que solamente están los encabezados de las columnas, pero ninguna fila. Tu error consiste en tratar de buscar datos donde no existen, es decir, leer lineas que no hay y por tanto poseen la condición de undefined.
Undefined no es un resultado de MySQL, sino de PHP y se refiere a que no puede encontrar nada... porque no hay nada.
Lo que debes hacer es leer $result si y sólo si es válido, cosa que no estás comprobando, ya que el while se ejecuta al menos una vez antes de comprobar el estado y con ello intenta acceder a los registros inexistentes.
En el Foro de PHP te pueden dar mejores indicaciones, pero anticipándome a ello, lo único que debes hacer es encerrar el ciclo de lectura dentro de un if:
Código PHP:
Ver original
  1. $result=mysql_query("SELECT * FROM `tabla` WHERE `N_SOCIO` = $numero ",$link);
  2. if($result)
  3.   {
  4.   while($row = mysql_fetch_array($result))
  5.      {
  6.      $res=$row['N_SOCIO'];
  7.      $res1=$row['NOMBRE'];
  8.      $res2=$row['APELLIDO1'];
  9.      $res3=$row['APELLIDO2'];
  10.      }
  11.   // Devuelve los valores al documento en flash
  12.   echo "&res=".$res;
  13.   echo utf8_encode("&res1=".$res1);
  14.   echo utf8_encode("&res2=".$res2);
  15.   echo utf8_encode("&res3=".$res3);
  16.   }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/10/2010, 07:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Hola, osiris.

Traslado el tema a una sección donde encaja mejor.
Tema trasladado desde la sección de Mysql.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 24/10/2010, 04:49
 
Fecha de Ingreso: marzo-2003
Ubicación: Catalunya
Mensajes: 265
Antigüedad: 21 años, 1 mes
Puntos: 2
Respuesta: Cambiar mensaje undefined

Muchas gracias gnzsoloyo. Creo que me ha quedado claro.
Un saludo
__________________
www.armand.cat

Etiquetas: mensaje, undefined
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:02.