Foros del Web » Programando para Internet » PHP »

Insertar regsitros

Estas en el tema de Insertar regsitros en el foro de PHP en Foros del Web. ola esto se trata de un formulario para insertar datos , pero al darle al boton insertar me salta un error i no consigo que ...
  #1 (permalink)  
Antiguo 24/04/2008, 07:58
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Insertar regsitros

ola

esto se trata de un formulario para insertar datos , pero al darle al boton insertar me salta un error i no consigo que se inserten , el error que me sale es este.

gracias

Cita:
num_derror 1062 ERROR
descripcio Duplicate entry '0' for key 1
EL codigo php es este:

Código PHP:
<?php
$conexio
=mysql_connect("localhost","root","");

mysql_select_db("parc_atraccions",$conexio);


$resulmysql_query("INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')"$conexio);
//Insertem el registres agafan les dades dels formnularis amb les variables 

if (mysql_errno($conexio)==0){
echo 
"Registre Insertat"
echo 
"<br>";
}

else 
{
$numeroerror=mysql_errno($conexio);
$descripcioerror=mysql_error ($conexio); 
echo 
"num_derror  $numeroerror ERROR";
echo 
"<br>";
echo 
"descripcio  $descripcioerror";
}
// Aqui  dalt ens dira l’error que tenim

mysql_close();
exit();

//Tanquem la conexio
?>
  #2 (permalink)  
Antiguo 24/04/2008, 08:09
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Insertar regsitros

Estas duplicando la llave primaria, en este caso antes de hacer el insert debes comprobar primero que en tu BD no exista algún registro con el DNI(Suponiendo que es tu clave primaria) que vas a insertar, o mejor aún dejar el DNI o tu Código primario como un valor Autoincrement para evitar estos inconvenientes.



Saludos.
  #3 (permalink)  
Antiguo 24/04/2008, 09:41
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

wenas , no estoy repitiendo los datos , cada vez pongo un dni diferente que no tengo en la base de datos y me sale el error.

gracias

Cita:
num_derror 1062 ERROR
descripcio Duplicate entry '0' for key 1
  #4 (permalink)  
Antiguo 24/04/2008, 09:44
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Insertar regsitros

El DNI es tu llave primaria? o es Cognom, es muy raro lo que te ocurre.



Saludos.
  #5 (permalink)  
Antiguo 24/04/2008, 11:39
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Insertar regsitros

son todos tus campos los que muestras o falta alguno??
tu primary key es o tienes algún autoincrementable??

el error es, como ya te mencionaron, un intento de insertar un registro con una clave primaria que ya existe.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 25/04/2008, 02:46
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

El DNI és primary KEy pero no autoincremntable.

EL problema que me pasa , es que me inserta el registro con DNI 0 i los otros campos vacio , entonces al segundo que quiero insertar me dice que esta duplicado , pero pq no se me grabana los datos que io escribo en el formulario me pone el 0 automaticamentye. Alguien sabe pq?

gracias

codigo php:

<html>
<body bgcolor="00FF99">
<p align="right"><a href="menu.html">Tornar al Menú </a></p>
<p align="right"><a href="insert_treballadors.html">Tornar a insertar un altre Treballador </a></p>

Código PHP:
<?php
$conexio
=mysql_connect("localhost","root","");

mysql_select_db("parc_atraccions",$conexio);


$resulmysql_query("INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')"$conexio);
//Insertem el registres agafan les dades dels formnularis amb les variables 

if (mysql_errno($conexio)==0){
echo 
"Registre Insertat"
echo 
"<br>";
}

else 
{
$numeroerror=mysql_errno($conexio);
$descripcioerror=mysql_error ($conexio); 
echo 
"num_derror  $numeroerror ERROR";
echo 
"<br>";
echo 
"descripcio  $descripcioerror";
}
// Aqui  dalt ens dira l’error que tenim

mysql_close();
exit();

//Tanquem la conexio
?>
  #7 (permalink)  
Antiguo 25/04/2008, 02:52
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Insertar regsitros

cambia
Código PHP:
$resulmysql_query("INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')"$conexio); 
por:
Código PHP:
$sql="INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')";
$resulmysql_query($sql$conexio); 
echo 
$sql


Tb puedes poner donde `recojes` o creas las variables ^^. El problema seguramente vendrá de ahí.

PD: Es bueno acostumbrarse a realizar las consultas así, metes la consulta en una variable, y luego la pasas al query. Básicamente, así en caso de que falle, haces un echo de la consulta, y ves si el fallo está ahí mucho más fácilmente
  #8 (permalink)  
Antiguo 25/04/2008, 02:57
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

ahora me sale esto?

una pregunta esto del sql pq se ace i luego pones el reuslt?

error de ahora
Cita:
INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('','','','','', '','','','','')num_derror 1062 ERROR
descripcio Duplicate entry '0' for key 1
  #9 (permalink)  
Antiguo 25/04/2008, 03:00
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Insertar regsitros

basicamente, falta que las variables $DNI, $nom, $cognom, etc, tengan valor xD

Vamos, que no las pasas de uno a otro.. te faltaria un

$DNI=$_POST["DNI"]; y un larguito etc ^^

lo de sql, es fácil, sólo es la cadena que pasas al query, pero puesta por variable.

Es lo mismo, excepto que luego puedes hacer un echo del la consulta que haces, al haberla almacenado
  #10 (permalink)  
Antiguo 25/04/2008, 04:04
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

Ahora bien , lo que pasa que hay dos campos que me los dejna en blanco, son Nom i cognom , i e defindio las variables.
  #11 (permalink)  
Antiguo 25/04/2008, 04:45
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: Insertar regsitros

pon de nuevo el codigo, a ver que ocurre..
__________________
"Prefiero callar como un tonto, que hablar para confirmarlo"
Espectacular Portal en crecimiento: Artículos http://www.blorgia.com
  #12 (permalink)  
Antiguo 25/04/2008, 08:58
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Insertar regsitros

haz un echo al insert para que te veas que es lo que esta tratando de insertar, así puedes comparar con lo que tienes en la BD.

checa que el DNI no este cambiando su valor antes del insert.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #13 (permalink)  
Antiguo 25/04/2008, 09:56
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

Ahora me inserta todos los campos menos NOm i cognom, el codigo es este:

Código PHP:
<?php
$conexio
=mysql_connect("localhost","root","");

mysql_select_db("parc_atraccions",$conexio);
$DNI=$_POST["DNI"];
$Nom=$_POST["Nom"];
$Cognom=$_POST["Cognom"];
$Adreca=$_POST["Adreca"];
$Telefon_fix=$_POST["Telefon_fix"];
$Telefon_movil=$_POST["Telefon_movil"];
$email=$_POST["email"];
$Carrec=$_POST["Carrec"];
$Hores_setmanals=$_POST["Hores_setmanals"];
$Num_zona=$_POST["Num_zona"];

$sql="INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')";
$resulmysql_query($sql$conexio); 
echo 
$sql;  
//$resul= mysql_query("INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')", $conexio);
//Insertem el registres agafan les dades dels formnularis amb les variables 

if (mysql_errno($conexio)==0){
echo 
"Registre Insertat"
echo 
"<br>";
}

else 
{
$numeroerror=mysql_errno($conexio);
$descripcioerror=mysql_error ($conexio); 
echo 
"num_derror  $numeroerror ERROR";
echo 
"<br>";
echo 
"descripcio  $descripcioerror";
}
// Aqui  dalt ens dira l’error que tenim


mysql_close();
exit();

//Tanquem la conexio
?>
  #14 (permalink)  
Antiguo 25/04/2008, 10:03
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Re: Insertar regsitros

entonces es pq no ha pillado bien el post :)

revisa el formulario, los name de los campos ^^
  #15 (permalink)  
Antiguo 28/04/2008, 01:35
 
Fecha de Ingreso: abril-2008
Mensajes: 157
Antigüedad: 16 años
Puntos: 0
Re: Insertar regsitros

OKs , ya lo he revsiado en el formulario estan asi.


Código HTML:
Nom: 
      <input type="text" name="Nom" align="top" >
      <br>
      Cognom: 
      <input type="text" name="Cognom" align="top"> 
I el codigo pHP asi:

Código PHP:
<?php
$conexio
=mysql_connect("localhost","root","");

mysql_select_db("parc_atraccions",$conexio);
$DNI=$_POST["DNI"];
$Nom=$_POST["Nom"];
$Cognom=$_POST["Cognom"];
$Adreca=$_POST["Adreca"];
$Telefon_fix=$_POST["Telefon_fix"];
$Telefon_movil=$_POST["Telefon_movil"];
$email=$_POST["email"];
$Carrec=$_POST["Carrec"];
$Hores_setmanals=$_POST["Hores_setmanals"];
$Num_zona=$_POST["Num_zona"];

$sql="INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')";
$resulmysql_query($sql$conexio); 
echo 
$sql;  
//$resul= mysql_query("INSERT INTO treballadors (DNI, Nom, Cognom, Adreca, Telefon_fix, Telefon_movil, email, Carrec, Hores_setmanals, Num_zona) VALUES ('$DNI','$Nom','$Cognom','$Adreca','$Telefon_fix', '$Telefon_movil','$email','$Carrec','$Hores_setmanals','$Num_zona')", $conexio);
//Insertem el registres agafan les dades dels formnularis amb les variables 

if (mysql_errno($conexio)==0){
echo 
"Registre Insertat"
echo 
"<br>";
}

else 
{
$numeroerror=mysql_errno($conexio);
$descripcioerror=mysql_error ($conexio); 
echo 
"num_derror  $numeroerror ERROR";
echo 
"<br>";
echo 
"descripcio  $descripcioerror";
}
// Aqui  dalt ens dira l’error que tenim


mysql_close();
exit();

//Tanquem la conexio
?>
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:57.