Foros del Web » Programando para Internet » PHP »

PHP OO UPDATE mysql error: Duplicate entry '[email protected]' for key 1

Estas en el tema de UPDATE mysql error: Duplicate entry '[email protected]' for key 1 en el foro de PHP en Foros del Web. hola muchachos , estoy haciendo un base de datos donde se guarden los contactos que quieren hacer una consulta entonces hice algo asi: Código PHP: ...
  #1 (permalink)  
Antiguo 02/02/2014, 15:11
Avatar de manunores  
Fecha de Ingreso: enero-2014
Mensajes: 39
Antigüedad: 10 años, 3 meses
Puntos: 0
UPDATE mysql error: Duplicate entry '[email protected]' for key 1

hola muchachos , estoy haciendo un base de datos donde se guarden los contactos que quieren hacer una consulta entonces hice algo asi:
Código PHP:

$consulta
="select * from datoscontacto where email='.$_POST[email]'";  
                
$resultado=mysql_query($consulta$conexion) or die (mysql_error());  

//si el contacto existe
if (mysql_num_rows($resultado) !== 0)
                
                
                {
//me lo va a actualizar
                    
mysql_query("UPDATE  `fodeni`.`datoscontacto` SET  `nombre` =  '$_POST[nombre]',
                    `apellido` =  '$_POST[apellido]',
                    `pais` =  '$_POST[pais]',
                    `provincia` =  '$_POST[provincia]',
                    `organizacion` ='$_POST[organizacion]',
                    `sexo` = '$_POST[sexo]',
                    `edad` = '$_POST[edad]' WHERE CONVERT(  `datoscontacto`.`email` USING utf8 ) =  '$_POST[email]' LIMIT 1 "
$conexion) or die(mysql_error());
                    
                    
                    
                }else{
//sino me lo va a crear
                    
mysql_query("INSERT INTO datoscontacto (nombre, apellido, organizacion, pais, provincia, email, sexo, edad)
                            VALUES ('$_POST[nombre]', '$_POST[apellido]', '$_POST[organizacion]', '$_POST[pais]', '$_POST[provincia]', '$_POST[email]', '$_POST[sexo]', '$_POST[edad]')"
$conexion) or die (mysql_error());
                    
                    
                    
                }; 


Si quiero actualizar el contacto me sale este error "Duplicate entry '[email protected]' for key 1" pero el insert anda joya
  #2 (permalink)  
Antiguo 02/02/2014, 15:41
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: UPDATE mysql error: Duplicate entry '[email protected]' for key 1

Creo que tu error es este:

if (mysql_num_rows($resultado) !== 0)

pon esto:

if (mysql_num_rows($resultado) != 0)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 02/02/2014, 16:12
Avatar de manunores  
Fecha de Ingreso: enero-2014
Mensajes: 39
Antigüedad: 10 años, 3 meses
Puntos: 0
Respuesta: UPDATE mysql error: Duplicate entry '[email protected]' for key 1

me apareció lo mismo y copie la consulta de phpmyadmin al actualizar un registro
  #4 (permalink)  
Antiguo 03/02/2014, 05:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: UPDATE mysql error: Duplicate entry '[email protected]' for key 1

Cita:
Iniciado por manunores Ver Mensaje
me apareció lo mismo y copie la consulta de phpmyadmin al actualizar un registro
CoriaWeb no te está hablando de la query, sino de la condición del IF() que está mal escrita, y por tanto está saliendo por el else, donde insertas el dato.
Como sale por allí está intentando insertar un registro con una PK que ya existe.

Corrige eso (el IF, no el INSERT).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: duplicate, entry, key, mysql, select, sql, update
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 03:30.