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
In zwei Tabellen eintragen
-
-
Simple Lösung: Einfach 2 Querys senden
-
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 ? -
-
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.. -
-
PHP
Alles anzeigen<?php include_once('include/sessionhelpers.inc.php'); $user = $_POST['user']; $pw1 = $_POST['pw1']; $pw2 = $_POST['pw2']; $email = $_POST['email']; $coins = "100"; $level = "1"; if(isset($user) && isset($pw1) && isset($pw2) && isset($email)) { if(($pw1 == $pw2) && ($pw1 != '') && ($pw2 != '')) { $pw = $pw1; $exec = "SELECT * FROM users where UserName='$user'"; $result = mysql_query($exec); $rs = mysql_fetch_object($result); if($rs) { echo"Der Benutzer ist bereits vorhanden. <a href=\"index.php?site=reg\">Zurück</a>"; exit; } else { $exec="INSERT INTO users SET UserName = '$user', UserPass = MD5('$pw'), UserMail = '$email', coins = '$coins', level = '$level'"; mysql_query($exec); echo "Registrierung erfolgreich =)"; } } } else { echo "Fehler bei den Angaben."; } ?>
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.
-
Siehe in der Doku nach unter
isset
mysql_error
mysql_real_escape_string -
Lag daran, dass ich E-Mail auf Unique geschaltet hatte
Danke
-
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:
-
oh.. Dankeschön =)