Foros del Web » Programando para Internet » PHP »

Validar registros repetidos en base de datos

Estas en el tema de Validar registros repetidos en base de datos en el foro de PHP en Foros del Web. Primeramente me disculpo si ya se trato este tema pero los ejemplos que encontraba son de versiones viejas de php. Estoy usando wampserver y desarolle ...
  #1 (permalink)  
Antiguo 05/03/2008, 16:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Validar registros repetidos en base de datos

Primeramente me disculpo si ya se trato este tema pero los ejemplos que encontraba son de versiones viejas de php. Estoy usando wampserver y desarolle una base de datos definiendo los campos de cedula y email como UNIQUE, para evitar campos repetidos. Mi codigo es el siguiente

<?php
if ($_POST[oculto]!=1)
{
?>


<form id="form1" name="form1" method="post" action="">

<label>Nombre: <input type="text" name="nombre"/></label>
<br><br>
<label>Apellido: <input type="text" name="apellido"/></label>
<br><br>
<label>Cedula: <input type="text" name="cedula"/></label>
<br><br>
<label>
<input name="sexo" type="radio" value="mujer"/> Mujer
<input name="sexo" type="radio" value="hombre"/> Hombre
</label>
<br><br>
<label>Teléfono: <select name="telefono" size="1" id="telefono">
<option value="0412">0412</option>
<option value="0416">0416</option>
<option value="0424">0424</option>
<option value="0212">0212</option>
</select>
</label>
<label><input type="text" name="telefono"/></label>
<br><br>


<p><input name="oculto" type="hidden" id="oculto" value="1" /></p>
<label><input type="submit" name="submit" value="Inscribirme"/></label>
</form>


<?php } ?>

<?php
if($_POST[nombre])

{
include "conexion.php";

$sql="insert into diplomados values
('','$_POST[nombre]','$_POST[apellido]','$_POST[cedula]','$_POST[sexo]','$_POST[nacionalidad]','$_POST[inscripcion]','$_POST[email]','$_POST[telefono]')";

$consulta=mysql_query($sql,$conexion);


if ($cedula == 1) {echo "Campo cedula ya esta registrado
else {echo "inserte en la BD";}

if(!mysql_error()) {include "registro.html";}
else {"Intente mas tarde";}

mysql_close($conexion);
}
?>

Ahora mi problema es el siguiente , necesito comprobar que la cedula y el correo electronico que se esta ingresando no sean valores ya ingresados y para eso ingrese el siguiente script

if ($cedula == 1) {echo "Campo cedula ya esta registrado
else {echo "inserte en la BD";}

como prueba pero no me funciona, cuando le doy ingresar la pagina y tengo el valor de la cedula igual a uno de la base de datos se queda en blanco y no me muestra ningun error. Alguien podria ayudarme con esto??

Muchas gracias
  #2 (permalink)  
Antiguo 05/03/2008, 17:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Validar registros repetidos en base de datos

Tienes dos problemas, el primero es que tienes PHP configurado para no mostrar errores, esto lo cambias en el php.ini en la directiva display_errors, debes de pasarlo a "On".

Despues tu problema es que primero realizas la consulta y luego haces el probar si ya existe, prueba así tu codigo:
Código PHP:
<?php
if($_POST[nombre])

{
include 
"conexion.php";

if (
$cedula == 1) {
        echo 
"Campo cedula ya esta registrado";
} else {
         
$sql="insert into diplomados values
('','$_POST[nombre]','$_POST[apellido]','$_POST[cedula]','$_POST[sexo]','$_POST[nacionalidad]','$_POST[inscripcion]','$_POST[email]','$_POST[telefono]')"
;
         
$consulta=mysql_query($sql,$conexion) or die( mysql_error() );
}


if(!
mysql_error()) {include "registro.html";}
else {
"Intente mas tarde";}

mysql_close($conexion);
}
?>
Saludos.
  #3 (permalink)  
Antiguo 06/03/2008, 10:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar registros repetidos en base de datos

Gracias por tu respuesta ahora, probe con tu codigo y no se ejecuta el echo "Campo cedula ya esta registrado"; ya que no esta haciendo la consulta del campo cedula. Quite del script la consulta del campo cedula y deje or die( mysql_error() ); y el servidor me muestra el error por duplicacion de registro Duplicate entry '15487201' for key 2 que se produce por la condicion UNIQUE que le asigne como indice al campo cedula. mi idea es poder mostrar el mensaje como los dos definimos echo "Campo cedula ya esta registrado"; pero como lo hago??
  #4 (permalink)  
Antiguo 06/03/2008, 11:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Validar registros repetidos en base de datos

En tu código te falta la parte donde haces la consulta para ver si ya esta duplicado, este tipo de consulta la haces con un SELECT.

Saludos.
  #5 (permalink)  
Antiguo 06/03/2008, 12:28
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar registros repetidos en base de datos

en este caso como me recomendarias hacer?? disculpa la verdad es que soy novato y aun me cuenta un poco
  #6 (permalink)  
Antiguo 06/03/2008, 12:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Validar registros repetidos en base de datos

Te recomendaría que escribieras el código que falta para checar si esta duplicado o no la cedula.

Saludos.
  #7 (permalink)  
Antiguo 06/03/2008, 13:29
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar registros repetidos en base de datos

hice el codigo de esta manera:


<?php
if($_POST[nombre])

{
include "conexion.php";


$sql = "SELECT COUNT(*) as valor FROM diplomados WHERE cedula=".$cedula;
$consulta=mysql_query($sql,$conexion);

if ($cedula == 1) {
echo "Campo cedula ya esta registrado";
} else {

$sql="insert into diplomados values
('','$_POST[nombre]','$_POST[apellido]','$_POST[cedula]','$_POST[sexo]','$_POST[nacionalidad]','$_POST[inscripcion]','$_POST[email]','$_POST[telefono]')";

$consulta=mysql_query($sql,$conexion) or die( mysql_error() );
}
if(!mysql_error()) {print "Bien";}
else {"Intente mas tarde";}

mysql_close($conexion);
}
?>


solo que aun me da el error del servidor y no lo que mando a imprimir
  #8 (permalink)  
Antiguo 06/03/2008, 15:24
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Validar registros repetidos en base de datos

Prueba el codigo asi:

Código PHP:
<?php
if($_POST['nombre'])

{
include 
"conexion.php";

$cedula $_POST['cedula'];

$sql "SELECT COUNT(*)  FROM diplomados WHERE cedula = '$cedula'";
$consulta mysql_query($sql$conexion) or die( mysql_error() );
$dato mysql_result($consulta0);

if (
$dato >= 1) { 
echo 
"Campo cedula ya esta registrado";
} else {

$sql "INSERT INTO diplomados VALUES
('','"
.$_POST['nombre']."','".$_POST['apellido']."','".$_POST['cedula']."','".$_POST['sexo']."','".$_POST['nacionalidad']."','".$_POST['inscripcion']."','".$_POST['email']."','".$_POST['telefono']."')";

$consulta mysql_query($sql$conexion) or die( mysql_error() );
}
if(!
mysql_error()) {echo "Bien";}
else {echo 
"Intente mas tarde";}

mysql_close($conexion);
}
?>
Saludos.

Última edición por Carlojas; 10/03/2008 a las 09:33
  #9 (permalink)  
Antiguo 10/03/2008, 07:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Validar registros repetidos en base de datos

Gracias por la ayuda, probe el codigo que me enviaste solo que le quite algunas cosas que estaba sobrando para la aplicacion que termine por desarrollar y funciono perfectamente. Gracias.
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 18:56.