MySQL Doppelter Eintrag in Datenbank
Bobby
- datenbank
0 dedlfix1 Vinzenz Mai
Hi Leute,
Bin etwas verzweifelt, und en Neuling auf dem Gebite MySQL. Ich hab ne Datenbank mit drei Felder pro Datensatz.
Dazu eine kleine PHP-Datei die Einträge in der Datenbank vornehmen soll.
Nun passiert es aber das die Daten der Felder 2 und 3 jeweils in einem 2. Datensatz nochmals eingetragen werden.
<<Codeschnipsel>>
$typ="2";
$kat=$_GET['kat'];
$name=$_POST['name'];
$eintrag = "INSERT INTO Kategorien
(Name
,Zuordnung
,Typ
) VALUES('$name','$kat','$typ')";
mysql_query($eintrag);
echo "Eintrag erfolgreich<BR><BR> <a href='admin.php?action=sub&kat=".$_GET['kat']."'>zurück</A>";
<<ENDE Codeschnipsel>>
jeweils 2 Einträge in der Datenbank nach folgendem Muster:
Name||Zuordnung||Typ
||Zuordnung||Typ
Was mache ich falsch oder habe ich noch nicht verstanden? Liegt es eventuell an der Einrichtung der Datenbank?
Vielen Dank im Voraus
Grüße
Bobby
echo $begrüßung;
Nun passiert es aber das die Daten der Felder 2 und 3 jeweils in einem 2. Datensatz nochmals eingetragen werden.
Du kannst einen Unique Index über diese Felder legen, dann verhindert MySQL eine Doppeleintragung.
echo "$verabschiedung $name";
Hallo Bobby
<<Codeschnipsel>>
> $typ="2";
> $kat=$_GET['kat'];
> $name=$_POST['name'];
> $eintrag = "INSERT INTO `Kategorien` (`Name`,`Zuordnung`,`Typ`) VALUES('$name','$kat','$typ')";
> mysql_query($eintrag);
echo "Eintrag erfolgreich<BR><BR> <a href='admin.php?action=sub&kat=".$_GET['kat']."'>zurück</A>";
Vermutlich entsteht der zweite Datensatz, wenn Du auf diesen Link klickst.
Was mache ich falsch oder habe ich noch nicht verstanden? Liegt es eventuell an der Einrichtung der Datenbank?
a) bitte erläutere uns die gesamte Programmlogik.
Aufgrund Deines geposteten Quellcodes kann man höchstens Vermutungen anstellen.
b) Bitte verwende mysql_real_escape_string(),
bevor Du Benutzereingaben in eine SQL-Anweisung für MySQL einbaust.
Eine Begründung findest Du auf der verlinkten Seite.
Stell' Dir einfach als Namen O'Brian vor :-)
c) Wie Du hier Syntaxhighlightning erzielst, kannst Du einfach im
Antwortfenster lesen:
[ code lang=php ]
[ /code ]
im Fall von PHP (Leerzeichen vor code, /code und nach php, /code weglassen).
Freundliche Grüße
Vinzenz