PHP Registration mit 2 Datenbank tabellen
Hallo liebe Gemeinde, ich hoffe ihr könnt mir helfen
Seit zwei guten Tagen hänge ich nun an diesem Registrations Script.
Zur Situation in der Datenbank Tabelle "user" werden "Passwor, Email adresse, Aktiv, Nick und die letzte aktion gespeichert"
diese Tabelle soll mit dieser Verknüpft werden
verbunden werden und bei der Registration soll sofort in beide Tabelle gespeichert werden. Wie verknüpf ich die beiden miteinander das, jenes klappt
bzw ist das überhaupt möglich?
Seit zwei guten Tagen hänge ich nun an diesem Registrations Script.
Zur Situation in der Datenbank Tabelle "user" werden "Passwor, Email adresse, Aktiv, Nick und die letzte aktion gespeichert"
CREATE TABLE `user` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`nick` varchar( 50 ) COLLATE latin1_german1_ci NOT NULL ,
`resetkey` varchar( 50 ) COLLATE latin1_german1_ci default NULL ,
`rang` int( 11 ) NOT NULL ,
`email` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL ,
`passwd` varchar( 250 ) COLLATE latin1_german1_ci NOT NULL ,
`activ` varchar( 50 ) COLLATE latin1_german1_ci NOT NULL ,
`last` varchar( 30 ) COLLATE latin1_german1_ci NOT NULL ,
PRIMARY KEY ( `id` ) ,
UNIQUE KEY `nick` ( `nick` )
diese Tabelle soll mit dieser Verknüpft werden
CREATE TABLE `user` (
`id` int( 11 ) NOT NULL AUTO_INCREMENT ,
`uID int( 11 ) NOT NULL ,
`name` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL ,
`vname` varchar( 120 ) COLLATE latin1_german1_ci NOT NULL ,
PRIMARY KEY ( `uID) ,
verbunden werden und bei der Registration soll sofort in beide Tabelle gespeichert werden. Wie verknüpf ich die beiden miteinander das, jenes klappt
bzw ist das überhaupt möglich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148269
Url: https://administrator.de/contentid/148269
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
9 Kommentare
Neuester Kommentar
und was dann noch fehlt: Wie soll das denn zusammenhängen? EINE Lösung wäre ja z.B. bei der user2-Tabelle (der unteren) das Feld id ohne Auto-Inc zu machen.
Beim Eintragen in die user1-Tabelle gibt dir ja die Sprache (z.B. bei php mittels mysql_fetch_id, bei java indem du das CreateStatement entsprechend anpasst,...) die ID des zuletzt eingetragenen Datensatzes zurück. Diese trägst du dann in deine user2-Tbl. als ID ein. Schon hast du immernoch den Fall das es keine doppelten IDs geben kann (da du auf das Auto-Inc von Tabelle 1 direkt zurückgreiffst) und hast über die ID ne schöne numerische Verbindung geschaffen...
Beim Eintragen in die user1-Tabelle gibt dir ja die Sprache (z.B. bei php mittels mysql_fetch_id, bei java indem du das CreateStatement entsprechend anpasst,...) die ID des zuletzt eingetragenen Datensatzes zurück. Diese trägst du dann in deine user2-Tbl. als ID ein. Schon hast du immernoch den Fall das es keine doppelten IDs geben kann (da du auf das Auto-Inc von Tabelle 1 direkt zurückgreiffst) und hast über die ID ne schöne numerische Verbindung geschaffen...
Hallo,
eine normalisierungen solltest du schon bedenken.
D.h. wozu die 2. Tabelle wenn doch schon fast alles in der ersten steht?
Sinn würde es haben z.b. eine Rechtetabelle einzurichten oder andere Attribute die
ein User haben könnte.
Für solche Fälle sind, wie Günni richtig bemerkt, die Fremdschlüssel gültig.
In deinem Falle müsste die uID aus Tab2 mit ID aus Tab2 verknüpft werden.
Aber eintragen musst du schon in beide Tabellen per sql statement.
Denn jede Tabelle muss explizit angesprochen werden um Daten einzufügen.
Es gibt zwar noch Erweiterungen in SQL die das können, aber da gehört MySQL nicht dazu.
eine normalisierungen solltest du schon bedenken.
D.h. wozu die 2. Tabelle wenn doch schon fast alles in der ersten steht?
Sinn würde es haben z.b. eine Rechtetabelle einzurichten oder andere Attribute die
ein User haben könnte.
Für solche Fälle sind, wie Günni richtig bemerkt, die Fremdschlüssel gültig.
In deinem Falle müsste die uID aus Tab2 mit ID aus Tab2 verknüpft werden.
Aber eintragen musst du schon in beide Tabellen per sql statement.
Denn jede Tabelle muss explizit angesprochen werden um Daten einzufügen.
Es gibt zwar noch Erweiterungen in SQL die das können, aber da gehört MySQL nicht dazu.
gut - und für den zukünftigen Fragesteller der genau dieselbe Frage hat wäre es mehr als freundlich wenn du auch sagst WIE du das Problem behoben hast... Könnte ja sein das irgendwer hier in 500 Jahren nochmal reinsieht und sich freut wenn er die Lösung dann auch findet... (Er/Sie wird sich sicher auch freuen wenn man nur liest das du es gelöst hast -> aber wir sind hier nicht bei den Mathematikern die sich nach 3 Wochen schon nen Ast freuen weil die sagen können "ich weiss das es eine Lösung gibt - nur welche ist noch nicht klar")