Foros del Web » Programando para Internet » PHP »

Problema con mensaje de error

Estas en el tema de Problema con mensaje de error en el foro de PHP en Foros del Web. Ocurre lo sgte. Ingreso un nuevo user y lo guarda en la bd, pero me despliega el mensaje de error en ves de registro guardado ...
  #1 (permalink)  
Antiguo 14/11/2005, 13:41
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Problema con mensaje de error

Ocurre lo sgte.
Ingreso un nuevo user y lo guarda en la bd, pero me despliega el mensaje de error en ves de registro guardado aqui va la sección de código.

Código PHP:
$busqueda=mysql_query("SELECT rut_adm FROM administrador WHERE rut_adm='$rut'");
 
$total=mysql_num_rows($busqueda);
 
mysql_free_result($busqueda);
    
if(
$total>0){
    echo 
"No disponible";
    exit;
}else{
    
mysql_query("INSERT INTO ADMINISTRADOR(ID_adm,rut_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)VALUES('','$rut','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')") or die ("Error al ingresar usuario, Inténtelo más tarde");
    
mysql_close();
    echo
"registro guardado";
    exit;
}
//Else 
  #2 (permalink)  
Antiguo 14/11/2005, 13:56
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Te devuelve algún warning? Mira si tienes configurado el php.ini para que muestre esos errores, quizás haya algo mal pero inserte la información igual.

SI el campo estado_adm es entero prueba a quitarle la comillas al valor que ingresas aquí.

Por otro lado los exit no son necesarios (aunque depende de lo que quieras hacer...) y el mysql_close() ponlo fuera del if.

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 14/11/2005, 14:11
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Hice los cambios DJNelson curisoamente cambie el valor 1 a sin comillas y funciono una primera vez, después presento el mismo fallo. tb saque mysql_close() ahh y no devuelve ningun warning ...
  #4 (permalink)  
Antiguo 14/11/2005, 14:27
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Bueno, pues no se me ocurre que puede ser, mira si tienes algún otro campo que sea numérico y quítale las comillas... El campo ID_adm es autonumérico, verdad?, no vaya a ser que intentes meter dos registros iguales...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #5 (permalink)  
Antiguo 14/11/2005, 14:38
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
será que podrá estar afectando el orden del tema ?? porque aveces muestra el mensaje correcta y otras no esto marea
  #6 (permalink)  
Antiguo 14/11/2005, 14:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Lo que tienes que hacer para probar que el sql está bien generado, es tener la sentencia en una variable y pasarle esa variable como parámetro a la función mysql_query():
Código PHP:
$sql "INSERT INTO ADMINISTRADOR(ID_adm,rut_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access)
VALUES('','$rut','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1','$acceso')"
;
mysql_query($sql) or die ("Error en la consulta <strong>$sql</strong> :: ".mysql_error()); 
Con este nuevo "or die()" podrás ver la consulta generada, ademá del mensaje de error de MySQL.

saludos
  #7 (permalink)  
Antiguo 14/11/2005, 14:47
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Así es como lo haría yo (Es exactamente lo mismo pero prueba así haber que sale):

Código:
$busqueda=mysql_query("SELECT rut_adm FROM administrador WHERE rut_adm='$rut'");
$total=mysql_num_rows($busqueda);
    
if($total>0) echo "No disponible";
else{
    $resultado=mysql_query ("INSERT INTO ADMINISTRADOR (ID_adm,rut_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,celular_adm,estado_adm,adm_access) VALUES('','$rut','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular',1,'$acceso')");
    if ($resultado==TRUE) echo "registro guardado";
    else echo "Error";
}
Quizás sea cosa de mysql, revisa la configuración o reinstala de nuevo...

Saludos.

P.D.: Por cierto, porqué mi código no sale coloreado?
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #8 (permalink)  
Antiguo 14/11/2005, 15:01
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Yo trataría de extraer los mensajes de error. Así tengo experiencia en otros casos. Separa la sentencia SQL en una variable. En caso de error, la muestras. también utiliza mysql_error(). Ojo:: Sólo en tiempo de desarrollo!!

DjNelson:
Para que tu código salga coloreado utiliza la etiqueta [PHP] en lugar de [CODE]

saludos
  #9 (permalink)  
Antiguo 14/11/2005, 15:14
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Jpinedo he verificado la sentencia sql varias veces y esta bien es mas cuando guardo al cliente en la bd llegan todos los datos correctamente
  #10 (permalink)  
Antiguo 14/11/2005, 15:16
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por under_ground
Nones ya parece tengo que llamar a un chaman para que saumee el código
pero cuál fue el mensaje de error que te mostró mysql_error()???
  #11 (permalink)  
Antiguo 14/11/2005, 15:22
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Cita:
Iniciado por jpinedo
pero cuál fue el mensaje de error que te mostró mysql_error()???
ninguno no hay errores ... pensaba quizas un elseif ??

Última edición por under_ground; 14/11/2005 a las 15:30
  #12 (permalink)  
Antiguo 14/11/2005, 15:35
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
cuando guardo al cliente en la bd llegan todos los datos correctamente
Cita:
ninguno no hay errores
no mensajes de error... , sí se guarda el registro...
¿Cuál es el problema entonces?
  #13 (permalink)  
Antiguo 14/11/2005, 15:42
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
El problema es que cuando guardo el usuario el mensaje que debería salir es "INGRESO EXITOSO O AGREGADO" y no se muestra y siempre se despliega el mensaje de error
  #14 (permalink)  
Antiguo 14/11/2005, 15:47
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
siempre se despliega el mensaje de error
uuu.. ¿en qué quedamos?¿Qué dice tu mensaje de error?Espero que estés utilizando el código que te propuse... si no, de poco va a servir.
  #15 (permalink)  
Antiguo 14/11/2005, 15:54
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
jajaja ya veo que ocurre, no es un mensaje de error de mysql amigo jpinedo

Código PHP:
if($total>0){

echo 
"No disponible"; <---AL DECIR ERROR ME REFIERO A QUE CAE AQUÍ
    
}else{
    
$sql="INSERT INTO ADMINISTRADOR(ID_adm,rut_adm,pass_adm,nombre_adm,apaterno_adm,amaterno_adm,direccion_adm,ciudad,telefono_adm,    celular_adm,estado_adm,adm_access)VALUES('','$rut','$pass','$nombre','$paterno','$materno','$direccion','$ciudad','$telefono','$celular','1',0)"mysql_query($sql) or die ("Error en la consulta <strong>$sql</strong> :: ".mysql_error()); 
    
    echo 
"guardado";
    
}
//Else 
Por eso digo que aunque el usuario no se repite y guarda los datos en mi BD sin problemas, el final de la ejecución siempre muestra como mensaje el "no disponible"
  #16 (permalink)  
Antiguo 14/11/2005, 16:37
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Siempre te muestra "no disponible"?

O te muestra primero "no disponible" y luego "guardado" o solo "no disponible" y guarda los datos en la base correctamente?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #17 (permalink)  
Antiguo 14/11/2005, 17:14
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
Así es amigo DJnelson siempre muestra el no disponible ...
  #18 (permalink)  
Antiguo 14/11/2005, 17:30
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 14 años, 4 meses
Puntos: 0
Pues no puede ser, o bien entra en el then o bien en el else pero no en los dos sitios a la vez...

No tendrás otro código por ahí que también muestra un "no disponible"?

No redireccionas la página o llamas una segunda vez al mismo script?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #19 (permalink)  
Antiguo 14/11/2005, 18:19
 
Fecha de Ingreso: abril-2005
Mensajes: 491
Antigüedad: 12 años, 8 meses
Puntos: 1
estoy revisando el cod ahora pero todo parece estar en orden si es neecsario coloco el gran parte del codigo..
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 07:18.