Foros del Web » Programando para Internet » PHP »

Duplicación de registros

Estas en el tema de Duplicación de registros en el foro de PHP en Foros del Web. Hola quería saber si me pueden ayudar con este problema soy nuevo en esto del php y no se mucho. Tengo una duda como hago ...
  #1 (permalink)  
Antiguo 20/08/2012, 19:23
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Busqueda Duplicación de registros

Hola quería saber si me pueden ayudar con este problema soy nuevo en esto del php y no se mucho. Tengo una duda como hago para que cuando ponga una matricula(es de tipo varchar ) que guarde, en la base de datos no me la acepte y me mande un error No se si se pueda poner ese mensaje de error a lado de la caja de texto
Código PHP:
<?php
include ("Conexion.php");

if(isset(
$_POST['nombre']) && !empty ($_POST['nombre']) &&
isset(
$_POST['materia']) && !empty ($_POST['materia']) &&
isset(
$_POST['grupo']) && !empty ($_POST['grupo']) &&
isset(
$_POST['matricula']) && !empty ($_POST['matricula']) &&
isset(
$_POST['pw']) && !empty ($_POST['pw']) &&
isset(
$_POST['pw2']) && !empty ($_POST['pw2']) &&
isset(
$_POST['email']) && !empty ($_POST['email']) && 
$_POST['pw'] == $_POST['pw2'])

{
    
    
$con=mysql_connect($host,$user,$pw)
    or die (
"problemas al conectar el servidor");
    
    
mysql_select_db($db,$con)
    or die (
"problemas al conectar la base de datos");
    
    
mysql_query ("INSERT INTO registro (NOMBRE,MATERIA,GRUPO,MATRICULA,PW,EMAIL)
VALUES ('$_POST[nombre]','$_POST[materia]','$_POST[grupo]','$_POST[matricula]','$_POST[pw]','$_POST[email]')"
,$con);

    
header("Location: Ingresar.php");    
    
}else{ 
    
    echo 
"Verifica si los campos estan llenos o si los Passworsd coinciden";
    }

?>
  #2 (permalink)  
Antiguo 20/08/2012, 19:41
Avatar de sonics2008  
Fecha de Ingreso: diciembre-2009
Ubicación: Santiago, Chile
Mensajes: 60
Antigüedad: 14 años, 4 meses
Puntos: 2
Respuesta: Duplicación de registros

La verdad no entiendo realmente lo que quieres. quieres que te genere un error????
  #3 (permalink)  
Antiguo 20/08/2012, 19:47
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Busqueda Respuesta: Duplicación de registros

Olvidemos eso del error !!! como hago para que no me duplique la matricula ????
  #4 (permalink)  
Antiguo 20/08/2012, 19:50
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duplicación de registros

Y lo del error seria un ejemplo como cuando estas llenando un formulario y te aparece contraseña débil seria un ejemplo pregunto se podría hacer algo parecido pero me conformo con lo de la duplicación de registros !!!!
  #5 (permalink)  
Antiguo 20/08/2012, 20:00
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Duplicación de registros

puedes colocar el campo matricula como primary para que no acepte duplicados o tambien puedes revisar por php

Código PHP:
Ver original
  1. <?php
  2. //parte de tu codigo
  3.  
  4. mysql_query("select matricula from registro where matricula = '".$matricula."'") or die(mysql_error());
  5.  
  6.     {
  7. //paso bien
  8. } else {
  9. //aqui muestras el error porque ya esta
  10.  
  11. }
  12. ?>
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #6 (permalink)  
Antiguo 20/08/2012, 20:05
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duplicación de registros

Este código en que parte iria ??? de pues de la insertar de registros ?? o antes ??
  #7 (permalink)  
Antiguo 20/08/2012, 20:07
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Duplicación de registros

Muy sencillo, primero verifica si existe el registro...

Código PHP:
Ver original
  1. $query = mysql_query('SELECT COUNT(*) FROM registro WHERE matricula = "'.$_POST['matricula'].'"',$con) or die(mysql_error());
  2.  
  3. if (mysql_result($query,0) == 0) {
  4.      echo 'No existe la matricula '.$_POST['matricula'];
  5. }else {
  6.      echo 'La matricula '.$_POST['matricula'].' ya existe en la tabla';
  7. }

La otra forma es que en tu tabla en MySQL cambies la propiedad de la tabla para que sea unique, así si intentas insertar otro registro con la misma matricula MySQL arrojará un error y no insertará el nuevo registro...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #8 (permalink)  
Antiguo 20/08/2012, 20:57
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duplicación de registros

Me manda el menseje pero me sigue guardando la mima matricula !!!
  #9 (permalink)  
Antiguo 20/08/2012, 21:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Duplicación de registros

o.O supongo que solo has hecho un copy/paste y ni si quiera analisaste los códigos que se te entregaron, en fin, DEBES MOVER el código donde guardas los registros a donde esta el mensaje, si dejas el código fuera del if será como si no hubieras agregado nada....
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 20/08/2012, 21:26
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duplicación de registros

He ahi el problema que apenas estoy empezando con esto del php desconozco muchas cosas la verdad Gracias de todos modos !!! :(
  #11 (permalink)  
Antiguo 20/08/2012, 21:28
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Duplicación de registros

Código PHP:
Ver original
  1. <?php
  2. include ("Conexion.php");
  3.  
  4. if(isset($_POST['nombre']) && !empty ($_POST['nombre']) &&
  5. isset($_POST['materia']) && !empty ($_POST['materia']) &&
  6. isset($_POST['grupo']) && !empty ($_POST['grupo']) &&
  7. isset($_POST['matricula']) && !empty ($_POST['matricula']) &&
  8. isset($_POST['pw']) && !empty ($_POST['pw']) &&
  9. isset($_POST['pw2']) && !empty ($_POST['pw2']) &&
  10. isset($_POST['email']) && !empty ($_POST['email']) &&  
  11. $_POST['pw'] == $_POST['pw2'])
  12.  
  13. {
  14.      
  15.     $con=mysql_connect($host,$user,$pw)
  16.     or die ("problemas al conectar el servidor");
  17.      
  18.     mysql_select_db($db,$con)
  19.     or die ("problemas al conectar la base de datos");
  20.      
  21. $query = mysql_query('SELECT COUNT(*) FROM registro WHERE matricula = "'.$_POST['matricula'].'"',$con) or die(mysql_error());
  22.  
  23. if (mysql_result($query,0) == 0) {
  24.      mysql_query ("INSERT INTO registro (NOMBRE,MATERIA,GRUPO,MATRICULA,PW,EMAIL)
  25. VALUES ('$_POST[nombre]','$_POST[materia]','$_POST[grupo]','$_POST[matricula]','$_POST[pw]','$_POST[email]')",$con);
  26.      echo 'No existe la matricula '.$_POST['matricula'];
  27. }else {
  28.      echo 'La matricula '.$_POST['matricula'].' ya existe en la tabla';
  29. }
  30.  
  31.     header("Location: Ingresar.php");    
  32.      
  33. }else{  
  34.      
  35.     echo "Verifica si los campos estan llenos o si los Passworsd coinciden";
  36.     }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #12 (permalink)  
Antiguo 20/08/2012, 21:44
 
Fecha de Ingreso: agosto-2012
Ubicación: Veracruz
Mensajes: 34
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Duplicación de registros

Gracias !!! Es que esto es a lo ke no entiendo mi ardilla esta muy perdida yo pensaba que la seleccion de la matricula era después del mandar los campo por ke pensaba que como va a saber la base de datos si esta la misma matricula si no la envío primero yo lo ponía abajo
  #13 (permalink)  
Antiguo 20/08/2012, 21:52
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Duplicación de registros

Es muy sencillo.....

Código PHP:
Ver original
  1. //Primero le preguntamos a MySQL que nos diga el numero de registros donde la matricula
  2. //sea igual a la matricula en la variable $_POST['matricula'];
  3. $query = mysql_query('SELECT COUNT(*) FROM registro WHERE matricula = "'.$_POST['matricula'].'"',$con) or die(mysql_error());
  4.  
  5. //Verificamos el numero de registros que encontro MySQL
  6. if (mysql_result($query,0) == 0) {
  7.       //Si es igual a 0 quiere decir que no hay ningún registro con la matricula indicada,
  8.       //por lo tanto ingresamos el nuevo registro
  9.      mysql_query ("INSERT INTO registro (NOMBRE,MATERIA,GRUPO,MATRICULA,PW,EMAIL)
  10. VALUES ('$_POST[nombre]','$_POST[materia]','$_POST[grupo]','$_POST[matricula]','$_POST[pw]','$_POST[email]')",$con);
  11.      echo 'No existe la matricula '.$_POST['matricula'];
  12. }else {
  13.      // si es diferente a 0 quiere decir ya existe un registro con la matricula, por lo tanto no la duplicamos
  14.      echo 'La matricula '.$_POST['matricula'].' ya existe en la tabla';
  15. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: mysql, registro, registros, sql
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 21:36.