Pregunta:
¿como puedo verificar que un registro de un usuario no se almacene dos veces en una base de datos mysql?
anonymous
2009-06-23 09:44:22 UTC
es decir, estoy trabajando en un proyecto de php y mysql en el cual estoy registrando a usuarios atraves de php a my base de datos...
ok lo q quiero y no tengo idea de como hacerlo es que cuando yo introdusca un registro nuevo este antes de almacenarse primero verifique por el numero de cedula si este usuario existe si existiera me mande un mensaje avisandome que este usuario ya esta almacenado si no que lo almacene normal mente le agradeceria su ayuda profundamente.
Cinco respuestas:
?
2009-06-23 10:07:17 UTC
PRIMERO TENDRIAS QUE EJECUTAR UNA SENTENCIA DE CONTEO QUE VERIFIQUE SI EXISTE TAL REGISTRO...QUIERE DECIR select (*) count from tabla.........eso lo almacenas en otra variable $total ....si total es > 0 entonces saque un mensage y no permita el ingreso mas bien seria algo como esto......pero recuerda trabajar con tus variables








include ('conexion.php');



$codigo=$_POST['cedulacliente'];

$nombre=$_POST['nomcliente'];

$telefono=$_POST['telefono'];

$direccion=$_POST['direccion'];

$ciudad=$_POST['ciudad'];





$sql= "SELECT COUNT(*) AS Total FROM tbcliente WHERE $codigo=cedulacliente ";

$result= mysql_query($sql,$con);

$row= mysql_fetch_array($result);

$total = $row ["Total"];



if($total > 0)

{

echo ' ';

}

else

{

$sql = "INSERT INTO tbcliente VALUES ('$codigo','$nombre','$telefono','$direccion','$ciudad' )" ;



if (@mysql_query($sql,$con))

{

echo ' ';

}

else

{

echo mysql_error($con);

exit();

echo ' ';

}

}

?>



y esta seria la conexion




$servidor="127.0.0.1";

$user ="root";

$password="admin";

$database="bdlibreria";

$con =mysql_connect($servidor,$user,$password);

mysql_select_db($database, $con);

$sql ="select *from tbcliente";



?>





si no lo entiendes comunicate conmigo

jhonjulianrodriguez@yahoo.com.mx
?
2017-01-03 12:40:20 UTC
one million) crea una tabla llamada tblCedula o como la quieras llamas con un campo 'cedula' de tipo INT 2) inserta los valores en la tabla ej: INSERT INTO tblCedula (cedula) VALUES (1111111111) INSERT INTO tblCedula (cedula) VALUES (2222222222) and so forth suerte
e=mc2
2009-06-23 10:56:21 UTC
Hola El Cangri,

Yo de PHP y de MySQL no se.

Cualquier motor de base de datos que se precie debería trabajar con las reglas de integridad referencial, y tengo entendido que MySQL desde las últimas versiones tiene soporte. Si es así bastaría con que tengas un campo como clave primaria y que no permita duplicados, y su correspondiente índice. De este modo, cualquier alta de usuario con la misma clave incurre en una violación a las reglas, y el motor arrojará una excepción o error.



Luego, desde tu script PHP ejecutas la instrucción INSERT, si recibes el error o excepción informas al usuario, en otro caso se da por entendido que el alta se realizó con éxito (si es necesario evaluar esto, bastará con lanzar un SELECT)



Espero que se entienda, no es necesario ejecutar primeramente un SELECT para saber... Es mejor, y más rápido, dejar que el motor nos lo diga si existe o no.



Saludos,
hectorini_mx
2009-06-23 10:51:20 UTC
Puedes crear un índice que no permita duplicados en la tabla... y luego en tu programa manejar los errores cuando no te permita insertar, el error va a decir explícitamente que el elemento ya existe en la tabla.
Mauricio P
2009-06-23 09:53:53 UTC
Bueno, lo ideal sería contar con algún número de identificacion, pero lo más simple en esos casos es verificar si ya existe la cuenta de correo que ingresó para saber si ya está el usuario...


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...