11. juni 2013 - 14:50
Der er
14 kommentarer og 1 løsning
Hvad betyder: Duplicate entry '0' for key 1
Jeg har denne løkke, som løber fint: if((isset($_POST['dato'])) && (isset($_POST['course']))) { $dato = $_POST['dato']; $course = $_POST['course']; if (count($dato) > 0) { for ($i=1;$i<=count($dato);$i++) { echo "<li>$dato[$i] - $course[$i]</li>"; } } } Når jeg skifter echo-linjen ud med: $sqladdWeekPlan="INSERT INTO minskolebod_dage (dage_datoer, dage_retter) "." VALUES ('$dato[$i]', '$course[$i]')"; $resultaddWeekPlan=mysql_query($sqladdWeekPlan) or die(mysql_error()); får jeg fejlen: Duplicate entry '0' for key 1 Hvad gør jeg galt?
Annonceindlæg fra Infor
Du forsøger måske at indsætte en værdi, som allerede findes, i et unique felt. Hvordan ser din TABLE minskolebod_dage ud? Hvilke felter er unique? Hvilke er primary key? Er der et index?
dage_id -> primary dage_ugedage dage_datoer dage_retter
Det er umuligt at hjælpe ud fra så få oplysninger. Som sagt forsøger du måske at indsætte værdier som allerede findes i tabellen. Der kan også være problemer med et index felt. Er dage_id sat til auto increment? Prøv evt. at tømme og resette tabellen, incl. index, sæt derefter værdier ind, idet du beskriver detaljeret og præcist hvornår fejlen kommer, og hvad du har gjort, sammen med et sql dump af tabellen.
Tabellen er helt tom nu. dage_id -> primary + autoincr. dage_ugedage dage_datoer dage_retter <?php include("config.php"); include("opendb.php"); if((isset($_POST['dato'])) && (isset($_POST['course']))) { $dato = $_POST['dato']; $course = $_POST['course']; if (count($dato) > 0) { for ($i=1;$i<=count($dato);$i++) { echo "<li>$dato[$i] - $course[$i]</li>"; $sqladdWeekPlan="INSERT INTO minskolebod_dage (dage_datoer, dage_retter) VALUES ('$dato[$i]', '$course[$i]')"; $resultaddWeekPlan=mysql_query($sqladdWeekPlan) or die(mysql_error()); } echo '<h2>Madplanen er udgivet og kan ses af alle</h2><p>Siden opdateres ...</p>'; include("closedb.php"); } } ?>
Hvis jeg kommenterer disse ud: $sqladdWeekPlan="INSERT INTO minskolebod_dage (dage_datoer, dage_retter) VALUES ('$dato[$i]', '$course[$i]')"; $resultaddWeekPlan=mysql_query($sqladdWeekPlan) or die(mysql_error()); så skriver den fint fem datoer og tilhørende retter.
Og hvilken fejlbesked får du så nu?
"Duplicate entry in empty database" :D
Jeg er ikke sikker på, at der findes sådan en fejlbesked.
Jeg vælger fem forskellige retter og får: 2013-08-12 - Hjemmelavede frikadeller med pastasalat 2013-08-13 - Kamsteg/Kyllingesalat Duplicate entry '0' for key 1
11. juni 2013 - 17:16
#10
Ja, det tyder på at dit felt dage_id ikke er sat til autoincrement.
11. juni 2013 - 17:20
#11
ARGHHHHH! Jeg sværger; jeg HAR checket det (bare ikke ordentligt). ØV! Nu virker det. Tak for vedholdenhed, rødme rødme... Nogen må smide et svar.
11. juni 2013 - 17:23
#12
Jeg samler heller ikke på points.
11. juni 2013 - 17:25
#13
Når hverken mediman eller jeg samler på point, så lægger du selv et svar, og accepterer dette.
11. juni 2013 - 17:29
#14
Ufortjent svar.
11. juni 2013 - 17:30
#15
Af hjertet tak.
Vi tilbyder markedets bedste kurser inden for webudvikling