ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
282
282
EMPFEHLEN
-
05.11.04 11:46 #1
- Registriert seit
- Nov 2004
- Beiträge
- 53
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:
Und hier nun eine der Dateien, bei denen es nicht funktioniert:PHP-Code:<html>
<head>
<title>Eintrag hinzufü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ür Ihren Eintrag!<br>",
"<a href=\"..\index.php\">Zurück</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
"<a href=\"javascript:history.back();\">Zurü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?PHP-Code:<html>
<head>
<title>Eintrag hinzufü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ür Ihren Eintrag!<br>",
"<a href=\"..\index.php\">Zurück</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
"<a href=\"javascript:history.back();\">Zurück</a>";
?>
</body>
</html>
Danke schonmal für eure Hilfe
Gruß blood-rose
-
05.11.04 11:49 #2
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
-
05.11.04 12:43 #3
- Registriert seit
- Nov 2004
- Beiträge
- 53
Oki, hier einmal die Tabellenstruktur, wie sie unter mysqladmin angezeigt wird:
Hab es in zwei Bilder unterteilt, sind etwas groß, deswegen:
http://www.blabla/bilder/db1.jpg
http://www.blabla/bilder/db2.jpgGeändert von blood-rose (05.11.04 um 15:02 Uhr)
-
05.11.04 13:12 #4
- Registriert seit
- Nov 2004
- Beiträge
- 53
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 ?:/Geändert von blood-rose (05.11.04 um 13:17 Uhr)
-
05.11.04 13:21 #5
- Registriert seit
- Nov 2004
- Beiträge
- 53
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?Geändert von blood-rose (05.11.04 um 13:24 Uhr)
-
05.11.04 13:43 #6
- Registriert seit
- Nov 2004
- Beiträge
- 53
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
-
05.11.04 13:50 #7
- Registriert seit
- Nov 2004
- Beiträge
- 53
Problem gelöst. Die Werte standen auf UNIQUE, das darf natürlich nicht sein
Ähnliche Themen
-
tabvisible aktiviert einmalig TabClick
Von DrMueller im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 17.09.10, 12:01 -
onmouseover nur einmalig?
Von DarkRaver im Forum CSSAntworten: 6Letzter Beitrag: 12.03.10, 22:24 -
[C#] In ListBox soll jeder Wert einmalig sein
Von RescueThePinguins im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 07.01.10, 22:56 -
CSS-Datei wird vom IE einmalig igoniert - warum?
Von scanline im Forum PHPAntworten: 6Letzter Beitrag: 02.05.06, 21:30 -
Datenbankeintrag funktioniert nicht
Von hwcsteffen im Forum PHPAntworten: 25Letzter Beitrag: 16.02.06, 16:37





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren