MYSQL Insert, Lösungsansatz fehlt

03/18/2015 11:05 DasPrinzip.#1
Hallo liebe Com,

und zwar mache ich zu Übung ein kleines Projekt.

Es gibt 2 Tabellen tbl_1 und tbl_2 einfach mal frei erfunden.
Nun habe ich bei der einen tbl_1 7 Spalten und tbl_2 6 Spalten.

tbl_1
id_pkusernamepasswordemailnamevornamepunkte
1user1sha1(pw)[Only registered and activated users can see links. Click Here To Register...]mayrdieter50
2user2sha1(pw)[Only registered and activated users can see links. Click Here To Register...]maierhans100

tbl_2
id_pkpiclinkheadlinedescriptionurlid_fk
1qwert.pngTitel1Ein Bild 1http:/ /www.bi ld1.de1
2qwertz.pngTitel2Ein Bild 2http:/ /www.bi ld2.de2
3qwertzu.pngTitel3 Ein Bild 3 http:/ /www.b ld3.de1

D.h. id_pk von tbl_1 ist verknüpft mit id_fk von tbl_2.

Nun fehlt mir die kreativität, bzw der Lösungsansatz, wie ich es löse, wenn z.B. User1 angemeldet ist, dass der id_fk in tbl_2 eingetragen wird von User1.

Ich hätte es vielleicht so gelöst:

PHP Code:
$idfk '(SELECT id_pk FROM tbl_1 WHERE username = $_SESSION["username"])'
Code:
INSERT INTO tbl_2
		(headline, description, url, picname, id_fk)
		VALUES
		('$headline','$description','$url','$dateiname','$idfk')
Oder gibt es da einen anderen Lösungsansatz? Über Tipps oder Verbesserungen würde ich mich freuen :)
03/18/2015 16:20 Mikesch01#2
Hi.

Erstelle zusätzlich eine Session-Variable mit der userID beim Login, die sozusagen ja nun dem jeweiligen Benutzer gehört.

Diese kannst du beim Eintrag-Speichern dann verwenden ;)
03/18/2015 16:29 lnqlorlouz#3
Quote:
Originally Posted by DasPrinzip. View Post
Hallo liebe Com,

und zwar mache ich zu Übung ein kleines Projekt.

Es gibt 2 Tabellen tbl_1 und tbl_2 einfach mal frei erfunden.
Nun habe ich bei der einen tbl_1 7 Spalten und tbl_2 6 Spalten.

tbl_1
id_pkusernamepasswordemailnamevornamepunkte
1user1sha1(pw)[Only registered and activated users can see links. Click Here To Register...]mayrdieter50
2user2sha1(pw)[Only registered and activated users can see links. Click Here To Register...]maierhans100

tbl_2
id_pkpiclinkheadlinedescriptionurlid_fk
1qwert.pngTitel1Ein Bild 1http:/ /www.bi ld1.de1
2qwertz.pngTitel2Ein Bild 2http:/ /www.bi ld2.de2
3qwertzu.pngTitel3 Ein Bild 3 http:/ /www.b ld3.de1

D.h. id_pk von tbl_1 ist verknüpft mit id_fk von tbl_2.

Nun fehlt mir die kreativität, bzw der Lösungsansatz, wie ich es löse, wenn z.B. User1 angemeldet ist, dass der id_fk in tbl_2 eingetragen wird von User1.

Ich hätte es vielleicht so gelöst:

PHP Code:
$idfk '(SELECT id_pk FROM tbl_1 WHERE username = $_SESSION["username"])'
Code:
INSERT INTO tbl_2
		(headline, description, url, picname, id_fk)
		VALUES
		('$headline','$description','$url','$dateiname','$idfk')
Oder gibt es da einen anderen Lösungsansatz? Über Tipps oder Verbesserungen würde ich mich freuen :)
Code:
INSERT INTO tbl_2 WHERE username = $_SESSION["username"]
		(headline, description, url, picname, id_fk)
		VALUES
		('$headline','$description','$url','$dateiname','$idfk')
03/18/2015 19:15 DasPrinzip.#4
Okay danke an beide schon mal.

@ lnqlorlouz
Mit der WHERE Bedingung bekomme ich doch dann einen Fehler, weil in der tbl_2 ja keine Spalte username ist. Oder hab ich grad einen Denkfehler?

@Mikesch01
Ja stimmt das war oben nur theoretisch, hätte es rein aus Schönheit in ne Variable gepackt :P


Und es geht ja darum, dass die id_fk dem User entspricht, der die gleiche id_pk hat.
D.h. , wenn ich alle Bilder ausgeben will, die User1 hochgeladen hat, braucht das Bild ja die id_fk von dem User. Die soll eben eingetragen werden, wenn er/sie/es ein Bild hochlädt.
03/18/2015 19:45 Mikesch01#5
Quote:
Originally Posted by DasPrinzip. View Post
Und es geht ja darum, dass die id_fk dem User entspricht, der die gleiche id_pk hat.
D.h. , wenn ich alle Bilder ausgeben will, die User1 hochgeladen hat, braucht das Bild ja die id_fk von dem User. Die soll eben eingetragen werden, wenn er/sie/es ein Bild hochlädt.
Wie ich schon sagte. Man verwendet normalerweise zwei Session-Variablen. Einmal den Benutzernamen und einmal die userID. Diese representieren den aktuellen Benutzer.

Die userID aus der Session solltest du in einer Spalte bei der Tabelle für die Bilder beim Hochladen ablegen, wie du beschrieben hast.

Damit kannst du direkt alle Daten von einem Benutzer auslesen.

Stichwort: Relationale Datenbanken
03/18/2015 19:52 DasPrinzip.#6
Quote:
Originally Posted by Mikesch01 View Post
Wie ich schon sagte. Man verwendet normalerweise zwei Session-Variablen. Einmal den Benutzernamen und einmal die userID. Diese representieren den aktuellen Benutzer.

Die userID aus der Session solltest du in einer Spalte bei der Tabelle für die Bilder beim Hochladen ablegen, wie du beschrieben hast.

Damit kannst du direkt alle Daten von einem Benutzer auslesen.

Stichwort: Relationale Datenbanken
Ahhh sorry hab das zusätzlich überlesen^^
Ja das ist gut ;)