In zwei Tabellen eintragen

  • Guten Morgen.

    Ich beschäftige mich jetzt schon etwas länger damit, zwei Tabellen miteinander zu "verbinden". Hab jetzt schon gehört, dass da was mit "JOIN" geht, aber etwas genaues darüber habe ich nicht herausgefunden.

    Dann habe ich einfach mal probiert über den INSERT Befehl in zwei Tabellen einzutragen, aber funktionieren tut dass auch nicht so recht.

    Ich möchte also, dass ich schon bei der "Registration" den User in der Tabelle "user" und in der Tabelle "world" eintrage.

    Für Vorschläge und Anregungen bin ich gerne offen.. Danke :)

    [SIGPIC][/SIGPIC]

  • Dafür würde ich dir auch zu zwei Querys raten.
    Soweit ich weiss geht hier die Technik von JOIN nicht oder nicht so gut.

    Aber wenn dus trotzdem mit JOINs machst, dann mach das einfach wie n SELECT Query, das könnte gehn.

  • also wenn ichs richtig im kopf hab, geht ein insert zwar mit nem join,
    aber nur wenn bei dem join eine selectabfrage kommt. 2 inserts müssen
    wirklich in 2 querys abgesetzt werden.

  • Ihr meint einfach zwei mal den "INSERT" Befehl ? Das habe ich auch schon gemacht und per mysql_error() debuggt.. da sagt er mir dass die zeile doppeldeutig ist..

    erste tabelle -> UserName

    zweite tabelle -> UserName


    und es soll in beide eintragen.. liegt es daran, dass ich die selben bezeichnungen gewählt habe ?

    [SIGPIC][/SIGPIC]

  • Ich frage mich gerade eher wieso er den User zweimal speichern will...
    du könntest hier ja mal die Tabellen reinschreiben, vielleicht lässt sich da was optimieren ;)

    Code
    SHOW CREATE TABLE `TABELLE`;

    Gruß crAzywuLf :D

    3 Mal editiert, zuletzt von crAzywuLf (22. März 2010 um 11:24)

  • poste mal den code...

    edit: zu crazywulfs kommentar..... willst du den kompletten user
    2x eintragen ? weil eigentlich würde ja auch die id von tab user
    als verweis in tab world reichen..

  • Naja, ich hab das jetz nich getestet, aber müsste nicht auch

    PHP
    $sql="INSERT INTO tabelle1,tabelle2 ([...]) VALUES ([...])";


    gültig sein?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Das ist die reg_ok.php ... bei dem Insert will ich halt auch in die zweite tabelle schreiben.


    EDIT: Wenn ich zwei INSERTS bzw. zwei "mysql_querys" untereinander schreibe, kommt Registrierung erfolgreich. Aber er trägt es nur in die zweite Tabelle ein.

    [SIGPIC][/SIGPIC]

    Einmal editiert, zuletzt von .Shanii (22. März 2010 um 11:41)

  • mal davon abgesehen, falls deine Seite wirklich mal viele Benutzer besitzen sollte, wird der Server nicht mehr lange leben wenn du immer über alle Benutzer loopst.

    du solltest es eher so prüfen:

    PHP
    $result_email = mysql_query("SELECT 1 FROM users WHERE UserMail = '" . mysql_real_escape_string($email) . "' LIMIT 1");
    $result_user = mysql_query("SELECT 1 FROM users WHERE UserName = '" . mysql_real_escape_string($user) . "' LIMIT 1");

    Gruß crAzywuLf :D