Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como validar que se haya hecho un registro en mysql?

Estas en el tema de Como validar que se haya hecho un registro en mysql? en el foro de PHP en Foros del Web. Hola! Necesito ayuda urgente con este problemita.... Resulta que quiero despues de hacer un registro en mysql por medio de php comprobar que el mismo ...
  #1 (permalink)  
Antiguo 28/10/2013, 14:14
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 15 años, 3 meses
Puntos: 0
Como validar que se haya hecho un registro en mysql?

Hola!

Necesito ayuda urgente con este problemita....

Resulta que quiero despues de hacer un registro en mysql por medio de php comprobar que el mismo se hizo exitosamente y enviar un mensaje...

Yo lo estaba haciendo de esta manera:

<?php
include "../sesion/seguridad.php";
include "../sesion/conexion.php";


$sql = sprintf("INSERT INTO usuarios (`nombre`, `correo`, `telefono`, `usuario`, `contrasena`, `eliminado`) VALUES ('%s', '%s', '%s', '%s','%s','0');",
fn_filtro(substr($_POST['nombre'], 0, 45)),
fn_filtro(substr($_POST['correo'], 0, 45)),
fn_filtro(substr($_POST['telefono'], 0, 45)),
fn_filtro(substr($_POST['usu'], 0, 45)),
fn_filtro(substr($_POST['contra'], 0, 11))
);

//Insertamos el historial en la tabla
mysql_query ("INSERT INTO bitacoras VALUES ('".$_SESSION['usuario']."',now(), now(), 'Agrego', 'Nuevo Usuario')");



if(!mysql_query($sql)){
echo "Error al insertar al nuevo usuario:\n$sql";
exit;

}
else {
echo "Usuario: $_POST[usu], Registrado Exitosamente";
}

?>


Pero resulta que con esta sentencia: if(!mysql_query($sql)) se registra dos veces el mismo usuario en la tabla con diferentes id pero los mismos datos...

Entonces quiero validar que si se hace el resgistro muestre un mensaje, si no el otro, y pues que el registro lo haga obviamente una sola vez.

Espero me puedan ayudar porfiss! Saludos a todos!
  #2 (permalink)  
Antiguo 28/10/2013, 14:26
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 14 años, 5 meses
Puntos: 95
Respuesta: Como validar que se haya hecho un registro en mysql?

La manera mas sencilla que se me ocurre, es que cambies la estructura de la tabla para que ciertos campos sean unicos, por ejemplo:

correo y usuario, son campos que no deberian repetirse, asi como la combinacion de nombre de usuario y contraseña tambien deberia ser unica.

Algo como:

Código MySQL:
Ver original
  1. alter table usuarios
  2. add unique index correo(correo)
  #3 (permalink)  
Antiguo 28/10/2013, 14:41
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como validar que se haya hecho un registro en mysql?

Gracias por responder tan rapido jeje.. Pero no se si no te entendi o si no me di a entender..

Yo valido antes de hacer el registro, que el usuario no exista, ni el correo y si es asi permito el registro, si no, envio un mensaje de error.. Lo que sucede es que omiti esa parte de codigo, porque ahi no me da error y no lo crei necesario....

Lo que quiero es que si por alguna razon - despues de validar que todo este bien y si se pueda hacer el registro - no se puedo insertar el nuevo registro, me mande un msj de error para que el usuario lo sepa..

Pues estaba probando cn esa sentencia if (!mysql_query($variable)) pero lo que hace es insertar el registro 2 veces.. :S

Ayuda please..
  #4 (permalink)  
Antiguo 28/10/2013, 14:54
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 10 meses
Puntos: 1
Respuesta: Como validar que se haya hecho un registro en mysql?

Saludos

Prueba con:

mysql_insert_id();
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 28/10/2013, 15:27
 
Fecha de Ingreso: octubre-2013
Ubicación: bogota
Mensajes: 9
Antigüedad: 11 años
Puntos: 0
Respuesta: Como validar que se haya hecho un registro en mysql?

seria algo como
if(mysql_insert_id())
{
echo "el usuario ya existe"
}

si es de la misma pagina, asi guardaria la funcion anterior
  #6 (permalink)  
Antiguo 28/10/2013, 15:33
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 8 meses
Puntos: 96
Respuesta: Como validar que se haya hecho un registro en mysql?

Eso es lo mas basico en un sistema de usuarios, antes de hacer un insert into debes comprobar que los datos no existan con un simple SELECT * ademas de lo que dice AlanChavez
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #7 (permalink)  
Antiguo 28/10/2013, 15:47
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como validar que se haya hecho un registro en mysql?

Lo que sucede es que no quiero validar si el usuario ya existe.. Eso ya lo hago y funciona bien.. Lo que quiero es validar esto:

$variable=Inserta en la tabla usuarios los siguientes datos;
$lala=mysql_query($variable);

si se inserto el registro {

echo "registro exitoso";
}

else {

echo"Ocurrio un error";

}

Porque a veces me muestra el msj de registro exitoso y cuando voy a la bd, no hay nada...
  #8 (permalink)  
Antiguo 28/10/2013, 16:14
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 8 meses
Puntos: 96
Respuesta: Como validar que se haya hecho un registro en mysql?

Entonces puedes usar la funcion mysql_affected_rows(), algo asi
Código PHP:
Ver original
  1. if(mysql_affected_rows($lala)>0){
  2. echo "Registro existoso";
  3. }else{
  4. }
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #9 (permalink)  
Antiguo 28/10/2013, 16:32
 
Fecha de Ingreso: agosto-2009
Ubicación: Venezuela
Mensajes: 82
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como validar que se haya hecho un registro en mysql?

Gracias chic@s! No se como o porque pero funciono como lo tenia al principio, sólo que ordene los parentesis, supongo que de esos errores muy tontos...

Me quedo asi:
Luego de hacer el insert verifico:

$sql="INSERT INTO usuarios..............;
$result=mysql_query($sql);


if(!($result)){
echo"<p>NO se registr&oacute;. ERROR!!</p>";
}
else {

echo"<p>Registro Exitoso</p>";
echo"<br>";
}

Así me funciona bien.. hasta el momento jeje espero y siga asi....

Les agradezco muuucho sus respuestas porq con sus aportes me han ayudado con otras dudas que tenia en otras partes del sistema y las pondre en práctica!!

Gracias Chic@s!! :D

Etiquetas: hecho, mysql, registro, sql, tabla, usuarios
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 12:07.