Datenbankeintrag funktioniert nur einmalig

blood-rose

Mitglied
Hi, ich habe ein kleines oder auch großes Problem mit meinem Datenbankprogrämmchen.
Ich beschreib mal eben kurz den Aufbau:

neuen_Datensatz.php //hier sind die html-Formulare beschrieben
einfuegen_Datensatz.php //hier werden die Daten dann in die DB geschrieben
db.inc //Datenbankverbindung wird aufgebaut

So, ich poste gleich noch wie die einfuegen_Datensatz.php-Dateien aufgebaut sind.Auf jeden Fall ist es so, dass ich bei fast allen Dateien nur einen neuen Datensatz hinzufügen kann. Beim nächsten bekomme ich eine Fehlermeldung.

Leere ich die Tabelle allerdings wieder, kann ich auch wieder einen neuen Datensatz einfügen.

Ich poste hier nun einmal die Datei bei der es funktioniert:
PHP:
<html>
<head>
<title>Eintrag hinzuf&uuml;gen</title>
</head>
<body>
<?php
include ("../db/mysql.inc"); //Verbindungsdaten laden
mysql_query("
INSERT INTO tbl_Konzern
(Konzern_Name, Konzern_MC)
VALUES
('$Konzern_Name', '$Konzern_MC')
", $db);
if(mysql_affected_rows($db)==1)
echo "Vielen Dank f&uuml;r Ihren Eintrag!<br>",
		"<a href=\"..\index.php\">Zur&uuml;ck</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
		"<a href=\"javascript:history.back();\">Zur&uuml;ck</a>";
?>
</body>
</html>

Und hier nun eine der Dateien, bei denen es nicht funktioniert:
PHP:
<html>
<head>
<title>Eintrag hinzuf&uuml;gen</title>
</head>
<body>
<?php
include ("../db/mysql.inc"); //Verbindungsdaten laden
mysql_query("
INSERT INTO tbl_Adressdatei
(Firma_Werk, EK_VK, Partner, Strasse, Hausnummer, PLZ, Ort)
VALUES
('$Firma_Werk', '$EK_VK', '$Partner', '$Strasse', '$Hausnummer', '$PLZ', '$Ort')
", $db);
mysql_query("
INSERT INTO tbl_Partner
(Firma_Werk, EK_VK, Partner, Partnername, Bemerkungen, Konzern_MC)
VALUES
('$Firma_Werk', '$EK_VK', '$Partner', '$Partnername', '$Bemerkungen', '$Konzern_MC')
", $db);
if(mysql_affected_rows($db)==1)
echo "Vielen Dank f&uuml;r Ihren Eintrag!<br>",
		"<a href=\"..\index.php\">Zur&uuml;ck</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
		"<a href=\"javascript:history.back();\">Zur&uuml;ck</a>";
?>
</body>
</html>

Ich hoffe ihr könnt mir sagen, woran das liegen könnte. Kann es vieleicht an der Datenbankstrukturierung liegen oder liegt es an meinem Quelltext?
Danke schonmal für eure Hilfe:)

Gruß blood-rose
 
Hmmm...

gib mal bitte die Tabellen-Struktur.

könnte sein, dass Du keine eindeutige ID mit 'autoincrement' erstellt hast.
Bzw. dein autoincrement Feld mit dem gleichen Wert überschrieben wird.

MfG Sebastian
 
Na super:/ Ich glaube es liegt wohl an dem zusammgesetzten Primary Key:( Ich bekomme einen zweiten Eintrag hin, wenn jedes einzelne Feld des Primary Keys einen anderen Wert hat. Sobald ein Feld den gleichen Inhalt hat wie der des Voreintrags, kommt der Fehler.

Nur: Wie bekomme ich es hin, dass er das so nicht mehr macht? Ich brauche diesen zusammengesezten Primary Key. Muss ich den vieleicht irgendwie anders definieren?

Edit: Rein theoretisch verstehe ich das Problem... muss ich vieleicht die drei Spalten, die ich als Primary Key definiert habe, erst erstellen, und dann eine extra Spalte für den zusammengesetzten Primary Key erstellen? Nur WIE ?:/
 
Zuletzt bearbeitet:
Weil, ich hab den Primary Key doch schon extra definiert:

Syntax:


CREATE TABLE tbl_Partner(Firma_Werk int(4), EK_VK char(2),Partner int(7),Parnername varchar(40),Bemerkungen longtext, Konzern_MC varchar(10), FOREIGN KEY (Konzern_MC) REFERENCES tbl_Konzern(Konzern_MC ),Primary Key(Firma_Werk, EK_VK,Partner));


Das komische ist, das der Fremdschlüssel (Foreign Key) in mysqladmin auch nicht angezeigt wird. Auch wird keine extra Spalte für den Primary Key erstellt:(
Also wie ist die Syntax wenn der zusammengesetzte Primary Key eine extra Spalte darstellen muss?
 
Zuletzt bearbeitet:
Ich würde ja sagen so etwas könnte man nehmen:

ALTER table tbl_test CONSTRAINT schluessel PRIMARY KEY ( eintrag1, eintrag2 );

Fehlermeldungen bekomme ich dabei auch nicht, doch eine neue Spalte wird nicht angelegt:(

Also suche ich eigentlich nur noch den Befehl für:
Erstelle neue Spalte in Tabelle, welche der Primärschlüssel ist, der sich aus (Feld1, Feld2, Feld3...) zusammensetzt. Falls den jemand weiß, her damit, ich bin leider noch nicht fündig geworden:(
 
Zurück