Foros del Web » Programando para Internet » PHP »

evitar datos duplicados

Estas en el tema de evitar datos duplicados en el foro de PHP en Foros del Web. muy buenas a todos, tengo la siguiente duda, ¿cómo puedo evitar el insertar datos duplicados en mi base de datos? muchas gracias a todos de ...
  #1 (permalink)  
Antiguo 24/11/2010, 09:59
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
evitar datos duplicados

muy buenas a todos, tengo la siguiente duda, ¿cómo puedo evitar el insertar datos duplicados en mi base de datos?

muchas gracias a todos de nuevo!

Saludos!!!
  #2 (permalink)  
Antiguo 24/11/2010, 10:02
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: evitar datos duplicados

Es muy sencillo...solo debes tener bien diseñada y normalizada tu base de datos....el emplear indices Unicos, te permite controlar...que un registro con el valor de ese indice no se vuelva a repetir....Un indice unico es la llave primaria...=)

no se si respondo a tu pregunta...si no es asi por favor aclaramela
  #3 (permalink)  
Antiguo 24/11/2010, 10:07
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

si tengo indices unicos pero al insertar datos este id es autonumerico, quiero controlar por nombre también.

Código PHP:
Ver original
  1. $consulta="Select * from obras where codigo='$codigo' and expediente='$expediente'";
  2. $query=mysql_query($consulta);
  3. $total=mysql_num_rows($query);
  4. if ($expediente==$_POST['expediente'])
  5. {
  6.  $error = $error . "<li>Ha introducido un expediente que ya existe en la Base de Datos. Por favor, inserte uno nuevo.</center><br>";
  7. };

Tengo esto pero se que está mal porque siempre el $expediente va a coincidir con el insertado.

Gracias
  #4 (permalink)  
Antiguo 24/11/2010, 10:10
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: evitar datos duplicados

Saludos

El error es de codificación

Código PHP:
Ver original
  1. //ANTES
  2. if ($expediente==$_POST['expediente'])
  3. //MODIFICADO
  4. if ($total>0)
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 24/11/2010, 10:12
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

eso está bien para comprobar que hay registros en la base de datos pero no para evitar el duplicar datos....

de todas formas gracias....
  #6 (permalink)  
Antiguo 24/11/2010, 10:16
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: evitar datos duplicados

Claro que si como te indico lo puedes lo puedes controlar por php y si lo que quieres es que no se inserte mas de un expediente en la base de datos entonces déjalo como unique
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 24/11/2010, 10:17
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: evitar datos duplicados

Compañero....si necesitas controlarlo mediante codigo...es muy sencillo

$consulta="Select count(*) as cantidad from obras where codigo='$codigo' and expediente='$expediente'";
$query=mysql_query($consulta);
if (mysql_result($query,0,'cantidad')>0)
{
$error = $error . "<li>Ha introducido un expediente que ya existe en la Base de Datos. Por favor, inserte uno nuevo.</center><br>";
};
  #8 (permalink)  
Antiguo 24/11/2010, 10:17
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

Pues a mi tu código no me funciona, inserto un nombre que existe y lo inserta de todas formas...

gracias!
  #9 (permalink)  
Antiguo 24/11/2010, 10:18
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: evitar datos duplicados

y lo de unique es eso...el indice unico y la base de datos no lo recibira.
  #10 (permalink)  
Antiguo 24/11/2010, 10:19
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

Pues a mi tu código no me funciona, inserto un nombre que existe y lo inserta de todas formas..., por cierto quiero controlar por nombre(expediente) tambien

gracias!
  #11 (permalink)  
Antiguo 24/11/2010, 10:20
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: evitar datos duplicados

Cita:
Iniciado por naciostars Ver Mensaje
Compañero....si necesitas controlarlo mediante codigo...es muy sencillo

$consulta="Select count(*) as cantidad from obras where codigo='$codigo' and expediente='$expediente'";
$query=mysql_query($consulta);
if (mysql_result($query,0,'cantidad')>0)
{
$error = $error . "<li>Ha introducido un expediente que ya existe en la Base de Datos. Por favor, inserte uno nuevo.</center><br>";
};


naciostars de esa forma no funcionaria ya que el campo codigo es autoincrement, lo que se debe realizar es dejar la consulta como se tenia anteriormente sin involucrar el campo codigo en la condición y hacer el ajuste que indique en el if
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #12 (permalink)  
Antiguo 24/11/2010, 10:21
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: evitar datos duplicados

tienes toda la razon

Compañero....si necesitas controlarlo mediante codigo...es muy sencillo

$consulta="Select count(*) as cantidad from obras where expediente='$expediente'";
$query=mysql_query($consulta);
if (mysql_result($query,0,'cantidad')>0)
{
$error = $error . "<li>Ha introducido un expediente que ya existe en la Base de Datos. Por favor, inserte uno nuevo.</center><br>";
};
  #13 (permalink)  
Antiguo 24/11/2010, 10:26
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

Muy buena actuación naciostars muchísimas gracias, tu código es el ganador.

Saludos!
  #14 (permalink)  
Antiguo 24/11/2010, 10:54
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: evitar datos duplicados

casi naciostars, necesito el código en esa consulta. Control por código y expediente.

si utilizo el código no funciona el control por expediente... alguna otra solución???

Gracias... rectifico funciona a las 1000 maravillas

Última edición por edgar4615; 24/11/2010 a las 11:07

Etiquetas: duplicados
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 13:45.