Avatar billede allandk Nybegynder
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?
Avatar billede mediman Nybegynder
11. juni 2013 - 15:01 #1
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?
Avatar billede allandk Nybegynder
11. juni 2013 - 15:46 #2
dage_id -> primary
dage_ugedage
dage_datoer
dage_retter
Avatar billede mediman Nybegynder
11. juni 2013 - 16:01 #3
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.
Avatar billede allandk Nybegynder
11. juni 2013 - 16:22 #4
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");
}       
    }
?>
Avatar billede allandk Nybegynder
11. juni 2013 - 16:26 #5
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.
Avatar billede erikjacobsen Ekspert
11. juni 2013 - 16:55 #6
Og hvilken fejlbesked får du så nu?
Avatar billede mediman Nybegynder
11. juni 2013 - 17:03 #7
"Duplicate entry in empty database" :D
Avatar billede erikjacobsen Ekspert
11. juni 2013 - 17:11 #8
Jeg er ikke sikker på, at der findes sådan en fejlbesked.
Avatar billede allandk Nybegynder
11. juni 2013 - 17:11 #9
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
Avatar billede erikjacobsen Ekspert
11. juni 2013 - 17:16 #10
Ja, det tyder på at dit felt dage_id ikke er sat til autoincrement.
Avatar billede allandk Nybegynder
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.
Avatar billede mediman Nybegynder
11. juni 2013 - 17:23 #12
Jeg samler heller ikke på points.
Avatar billede erikjacobsen Ekspert
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.
Avatar billede allandk Nybegynder
11. juni 2013 - 17:29 #14
Ufortjent svar.
Avatar billede allandk Nybegynder
11. juni 2013 - 17:30 #15
Af hjertet tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester