PHP - Validar si ya existe un registro

 
Vista:
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 10/11/2020 22:59:26
AMIGOS PODRIAN AYUDARME CON EL CODIGO PARA VALIDAR SI YA EXISTE UN REGISTRO EN UNA TABLA, MI FORMULARIO SI GRABA PERO AHORA QUIERO MODIFICARLO YQUE NO GRABE UN CLIENTE SI YA EXISTE UN CORREO ELECTRONICO ES DECIR NO PUEDE HABER 2 CLIENTES CON UN MISMO CORREO ELECTRONICO

ESTE ES MI CODIGO QUE HE TRATADO DE CAMBIAR PARA HACER LO QUE BUSCO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$conex=mysqli_connect("localhost","root","","anco")or die ("error");
$register=mysqli_query($conex,"select mail_cli from clientes where mail_cli='$_REQUEST[mail]'")
or die ("error".mysqli_error($conex));
$regis=mysqli_fetch_array($register);
if ($_REQUEST["mail"]=$regis)
{
	echo "ya existe ese correo"."<br>";
}
elseif (($_REQUEST["nombre"])=="" or ($_REQUEST["fono"])=="" or ($_REQUEST["mail"])==""
	or ($_REQUEST["naci"])=="" or ($_REQUEST["comen"])=="")
	{
		echo "<strong class='falta'>Falta datos por ingresar</strong>"."<br>";
	}
else
{
$conexion=mysqli_connect("localhost","root","","anco")or die ("error");
mysqli_query($conexion,"insert into clientes(nom_cli,fono_cli,mail_cli,naci_cli,comen_cli)values
('$_REQUEST[nombre]','$_REQUEST[fono]','$_REQUEST[mail]','$_REQUEST[naci]','$_REQUEST[comen]')")
or die ("error".mysqli_error($conexion));
 
	echo "<strong class='grabar'>Cliente registrado con éxito</strong>"."<br>";
//echo "<strong style='color:blue'>Cliente registrado con éxito</strong>"."<br>";
 
 
mysqli_close($conexion);
}
?>
<a href ="formcliente.php">Volver al Registro de Clientes</a>
</body>
</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por joel (1269 intervenciones) el 11/11/2020 07:45:59
Hola Robokick, la mejor manera es decirle a ese campo en la base de datos que sea único (UNIQUE), de esta manera estas seguro que no se añadirá ningún correo igual.

La otra manera, es hacerlo tal y como tu lo haces, hacer una consulta para ver si existe en la base de datos.... lo único, que cuando estas modificando tienes que revisar que no exista ese correo en un registro diferente al que vas a modificar... algo así:

1
"select mail_cli from clientes where mail_cli='$_REQUEST[mail]' AND id<>".$_REQUEST[id]

No se si me he sabido explicar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 11/11/2020 15:06:29
Hola Joel
Pero tel resto demi codificación esta bien?????
ES decir esta en el lugar correcto el correcto If y elseif etc???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 11/11/2020 18:44:35
eh prbado tal cual me has dado esa linea de codigo y no fuciona
tambien eh probado con mysql_num_rows y tampoco funciona

1
2
3
4
5
6
7
8
9
10
$conex=mysqli_connect("localhost","root","","anco")or die ("error");
$register=mysqli_query($conex,"select mail_cli from clientes where mail_cli='$_REQUEST[mail]'")
or die ("error".mysqli_error($conex));
$regis=mysqli_fetch_array($register);
	//if ($_REQUEST["mail"]=$regis)
 
		if(mysql_num_rows($regis)>0)
{
	echo "ya existe ese correo"."<br>";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Mauro (1036 intervenciones) el 11/11/2020 23:20:02
Hay que tener cuidado con este enfoque... se puede dar una condición de carrera si hay muchos usuarios intentando lo mismo.

Yo te sugiero que tomes la primera sugerencia de Joel (El campo UNIQUE) que es lo único que puede garantizar la unicidad a nivel de base de datos.

Lo que puedes hacer a nivel de la aplicación es intentar hacer la grabación y atrapar el error en caso de duplicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 12/11/2020 00:34:11
Mauro esto que me dices
Lo que puedes hacer a nivel de la aplicación es intentar hacer la grabación y atrapar el error en caso de duplicado

Podrías ayudarme en como hacer eso estoy aprendiendo php y esto que me mencionas si es nuevo para mi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Mauro (1036 intervenciones) el 12/11/2020 14:11:52
Claro, fíjate que en tu código haces

1
2
$register=mysqli_query($conex,"select mail_cli from clientes where mail_cli='$_REQUEST[mail]'")
or die ("error".mysqli_error($conex));

No veo el query de inserción pero imagino que será similar. El punto es que en lugar de usar "or die..." deberías dejar que avance y verificar cuál fue el error (usando mysqli_error por ejemplo).

Si el error es por violación del índice único ahí podrás indicar que ese fue el problema y solicitar al usuario que ingrese otro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 12/11/2020 16:37:36
Hola mauro,
altere el campo mail y telefono y fuciona bien no hay duplicidad ahora el mensaje que me aparece si registro a un cliente con un numero que ya esiste es este

errorDuplicate entry '983291124' for key 'Fono_cli'

ese mensaje hay manera de personalizarlo ??? por ejemplo el numero 983291124 ya existe en el sistema

se prodra??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Mauro (1036 intervenciones) el 13/11/2020 14:07:11
Claro. Lo que yo te decía es que tomes el código de error (Puedes usar la función mysqli_errno), que si no me equivoco es el 1062 y, en caso de que se produzca, armes un mensaje personalizado para mostrarle al usuario.

Algo como esto:

1
2
3
if (mysqli_errno($conex) == 1062) {
    $errorMsg = "el numero $telefono ya existe en el sistema";
}

Y luego usas ese mensaje ($errorMsg) para mostrarlo donde te sea conveniente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Mauro (1036 intervenciones) el 11/11/2020 23:21:48
Otra cosa, ten cuidado con expresiones como:

1
if ($_REQUEST["mail"]=$regis)

Si usas
1
=
en lugar de
1
==
vas a estar asignando en lugar de comparar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 396
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Validar si ya existe un registro

Publicado por Robokick (156 intervenciones) el 12/11/2020 00:26:23
Gracias Mauro por el aporte voy a aplicarlo entonces
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar