[php] foutmelding:Duplicate entry '0' for key 1

Pagina: 1
Acties:

  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 20:43
deze foutmelding krijg ik met het volgende script
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html dir="ltr"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<meta http-equiv="Content-Style-Type" content="text/css"> 


<title>SCMS edit :: overzicht</title> 
<LINK HREF="vai.css" TYPE="text/css" REL="stylesheet"> 
</head> 
<body bgcolor="#F8946C"> 


<table class="forumline" width="100%" cellspacing="1" cellpadding="3" border="0"> 
    <tr> 
      <th class="thHead" height="25" valign="middle"><span class="tableTitle">content aanpassen</span></th> 
    </tr> 
    <tr> 
      <td class="row1" align="center"><table width="80%" cellspacing="2" cellpadding="2" border="0" align="center"> 
        <tr> 
            <td><span class="genmed"> 
            
            text: 
            <br> 
<form action="maakaan.php" method="post"> 
de titel :<br> 

<input type="text" name="titel"> 

je content:<br> 
            <textarea cols="100" rows="30" name="tekst"></textarea> 
            <br> 
            <br> 
            <div align="center"> 
            <input type="submit" name="aanmaken" value="aanmaken"> 
            
            </div> 
            </form> 

<?php 
require("conf.php"); 
$server = mysql_connect($host,$user,$pass); 
mysql_select_db($db,$server); 
$teksten = "INSERT INTO teksten (tekst, titel, id) 
  VALUES ('mysql_insert_id,auto_increment()', '$tekst', '$titel')"; 
mysql_query($teksten) or die(mysql_error()); 

?> 


        
            </span></td> 
        </tr> 
      </table></td> 
    </tr> 
</table>

De bedoeling van deze pagina is om 2 nieuwe velden(tekst en titel) in de tabel teksten te maken.

Alleen krijg ik dus de melding
Duplicate entry '0' for key 1

Heeft er iemand een idee wat ik fout doe?(ik ben ook nog maar niet zo lang bezig met php)

Verwijderd

Je wilt een primary key 2 keer invoeren en dat mag niet :)

Verwijderd

Probeer eens:
code:
1
2
$teksten = "INSERT INTO teksten (id, tekst, titel) 
  VALUES ('mysql_insert_id,auto_increment()', '$tekst', '$titel')";

ipv:
code:
1
2
$teksten = "INSERT INTO teksten (tekst, titel, id) 
  VALUES ('mysql_insert_id,auto_increment()', '$tekst', '$titel')";

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Dit heeft erg weinig te maken met PHP, je doet gewoon iets verkeerd in je database.

Je wilt een record invoegen wat als primary key een waarde heeft die al bestaat. In dit geval dus 0.

Waarschijnlijk ben je vergeten je PK kolom op auto_increment te zetten.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

da's een mooie 'mysql_insert_id,auto_increment()' als sleutel :D

daar gebeurt dus helemaal niets mee. Als je dat invoert in een INT primary key veld, dan maakt MySQL daar 0 van. Als je dat dan nog een keer probeert in te voeren, gaat MySQL natuurlijk zeuren, want een primary key moet uniek zijn per record ;)

Maak van je primary key veld een AUTO_INCREMENT veld. Dan worden de primary keys automatisch opgehoogd bij insert queries, en heb je er geen omkijken meer naar

http://www.mysql.com/doc/e/x/example-AUTO_INCREMENT.html

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 20:43
Op woensdag 12 juni 2002 10:43 schreef drm het volgende:
uitleg...
tnx dat was het :)

nu moet ik nog even uitzoeken hoe ik de code pas laat uitvoeren als ik op submit klik maar dat lukt wel :)

  • Creesch
  • Registratie: Februari 2002
  • Laatst online: 20:43
huhmz het lukt toch niet echt ...

hoe kan je met

if ($submit != "")

instellen dat hij pas begint met uitvoeren van de code als er op submit is geklikt ?

Verwijderd

variabale met de form meegeven, 2 manieren:
code:
1
<input type="hidden" name="submit" value="blaat">

of
code:
1
<input type="sumit" name="submit" value="Verstuur!">

ik kies meestal voor de laatste.

dan in php:
code:
1
2
3
4
5
<?php
if(isset($_POST["submit"])){
    {code}
}
?>

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 12 juni 2002 11:55 schreef jurriebur het volgende:
ik kies meestal voor de laatste.
En toen drukte iemand in een tekstveld op enter... :P
Pagina: 1