Geht nur wenn ich nichts für "username" eingebe
sonst kommt diese Meldung:
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`forum`.`eintrag`, CONSTRAINT `eintrag_ibfk_1` FOREIGN KEY (`username`) REFERENCES `user` (`Username`))
Via php/html etwas in die datenbank schreiben
Re: Via php/html etwas in die datenbank schreiben
'username' muss natürlich in der user-Tabelle existieren. Daß es mit 'nichts' geht, liegt daran, daß wir 'NOT NULL' vergessen haben...sashpta hat geschrieben:Geht nur wenn ich nichts für "username" eingebe
sonst kommt diese Meldung:
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`forum`.`eintrag`, CONSTRAINT `eintrag_ibfk_1` FOREIGN KEY (`username`) REFERENCES `user` (`Username`))
So geht's jedenfalls:
Code: Alles auswählen
CREATE TABLE user (Username CHAR(16) PRIMARY KEY, Email CHAR(32), Password CHAR(16));
CREATE TABLE eintrag (eintragID INT AUTO_INCREMENT PRIMARY KEY,
username CHAR(16),
INDEX user_ind(username),
FOREIGN KEY (username) REFERENCES user(Username)
ON DELETE CASCADE);
INSERT INTO user (Username, Email, Password) VALUES ('Sepp', 'sepp@sepp.com', 'geheim');
INSERT INTO eintrag (username) VALUES ('Sepp');
SELECT * FROM eintrag;
DELETE FROM user WHERE Username = 'Sepp';
It's as simple as that. And remember, Beethoven wrote his first symphony in C.
Re: Via php/html etwas in die datenbank schreiben
Danke, klappt 
Also muss ich immer wenn ich etwas in "user" speicher den selben Namen auch in "eintrag" speichern oder? weil sonst ist nicht in der Tabelle "eintrag".
Wenn ich das dann auf nen Forumeintrag übertrage heißt das quasi, dass ich mit HTML ein Eingabefeld mache, das was da eingegeben wird mit PHP in einer Variable speicher und dann die Variable anstatt z.B. nen Namen rein mache. Das mit dem Namen mache ich dann bei "user" und "eintrag". Oder hab ich da was falsch verstanden?

Also muss ich immer wenn ich etwas in "user" speicher den selben Namen auch in "eintrag" speichern oder? weil sonst ist nicht in der Tabelle "eintrag".
Wenn ich das dann auf nen Forumeintrag übertrage heißt das quasi, dass ich mit HTML ein Eingabefeld mache, das was da eingegeben wird mit PHP in einer Variable speicher und dann die Variable anstatt z.B. nen Namen rein mache. Das mit dem Namen mache ich dann bei "user" und "eintrag". Oder hab ich da was falsch verstanden?
Re: Via php/html etwas in die datenbank schreiben
Nein, das passt schon.sashpta hat geschrieben:...Oder hab ich da was falsch verstanden?
Allerdings macht man das eigentlich anders herum.
Zuerst werden die Datenbanktabellen bzw. Relationen definiert und anschliessend normalisiert (vereinfacht). Wenn das Datenbankmodell steht, macht man sich Gedanken, wie das UI dazu aussehen soll.
Eine (ernsthafte) Datenbank ist nichts, wo man einfach immer wieder ein Stück "anklebt".
It's as simple as that. And remember, Beethoven wrote his first symphony in C.
Re: Via php/html etwas in die datenbank schreiben
Hmm oke, mal sehen wies so klappt 
Wenn ich ein Eingabefeld mit HTML mache, ist das ja dann so:
allerding sende ich da ja das was eingegeben wurde an die "action_page.php"
Wie mache ich, dass denn, dass es anstatt dahin gesendet zu werden in die Datenbank gepackt wird ?

Wenn ich ein Eingabefeld mit HTML mache, ist das ja dann so:
Code: Alles auswählen
<form action="action_page.php">
First name:<br>
<input type="text" name="firstname" ><br>
Last name:<br>
<input type="text" name="lastname"><br><br>
<input type="submit" value="Submit">
</form>
Wie mache ich, dass denn, dass es anstatt dahin gesendet zu werden in die Datenbank gepackt wird ?
- Xin
- nur zu Besuch hier
- Beiträge: 8862
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Via php/html etwas in die datenbank schreiben
Du kannst nichts in Eintrag schreiben, was keinem User zugeordnet werden kann.sashpta hat geschrieben:Danke, klappt
Also muss ich immer wenn ich etwas in "user" speicher den selben Namen auch in "eintrag" speichern oder? weil sonst ist nicht in der Tabelle "eintrag".
Ich weiß nicht, wo Du die CREATE TABLE Befehle herhast, aber es wäre schon von Vorteil, wenn Du verstehst, was das bedeutet

Vielleicht liest Du Dich erstmal in den Aufbau von Datenbanken ein, liest mal die Normalformen nach und "designst" zuerstmal die Tabellen und die Relationen dazwischen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Via php/html etwas in die datenbank schreiben
Ja also theoretisch weiß ich das aber ich wusste z.b. Nicht dass man da auch Beziehungen in der Praxis machen kann 
