Anmeldeskript soll in zwei Tabellen schreiben

Hallo,
ich habe ein Skript, wo man sich registrieren kann. An sich funktioniert es super. Aber ich möchte, dass mit dem Registrieren nicht nur der Nutzer in der Tabelle banker_nutzer abgespeichtert wird, sondern dessen neue Id (ben_id) auch in mindestens einer anderen Tabelle eingespeichert wird. Dieser Schritt soll an sich nur einmal passieren. Daher wollte ich es ins Anmeldeskript reinpacken. Eine andere Lösung fiel mir nicht ein.

Daher ist das entstanden:
PHP:
 require_once('appvars.php');
  require_once('verbvars.php');

  // Mit Datenbank verbinden
  $db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_PASSWORT, DB_NAME);

  if (isset($_POST['submit'])) {
    // Anmeldedaten aus $_POST auslesen
    $nutzername = mysqli_real_escape_string($db, trim($_POST['nutzername']));
    $passwort1 = mysqli_real_escape_string($db, trim($_POST['passwort1']));
    $passwort2 = mysqli_real_escape_string($db, trim($_POST['passwort2']));

    if (!empty($nutzername) && !empty($passwort1) && !empty($passwort2) && ($passwort1 == $passwort2)) {
      // Prüfen, dass dieser Benutzername noch nicht verwendet wird

      $sql = "SELECT * FROM banker_nutzer WHERE nutzername = '$nutzername'";
      $daten = mysqli_query($db, $sql);
      if (mysqli_num_rows($daten) == 0) {
        // Der Benutzername ist eindeutig, Daten können in Datenbank eingefügt werden
        $sql = "INSERT INTO banker_nutzer (nutzername, passwort, anmeldedatum) VALUES ('$nutzername', SHA('$passwort1'), NOW())";
        mysqli_query($db, $sql);
		

//die kommenden paar Zeilen sollten die neue ben_id in die anderen Tabellen einfügen, aber das Skript bricht hier wohl ab.
		  $ersteid = "SELECT ben_id FROM banker_nutzer WHERE nutzername = '$nutzername'";
		   $ersteidselect = mysqli_query($db, $ersteid) or die(mysql_error());
		
		  $sql2 = "INSERT INTO banker_konto (ben_id) VALUES ('$ersteid')";
          mysqli_query($db, $sql2) or die(mysql_error());
		 
		  
		   
        // Dem Benutzer die erfolgreiche Anmeldung bestätigen
        echo '<p>Ihr Konto wurde erstellt. Sie können sich jetzt einloggen und ihr ' .
          '<a href="profilbearbeiten.php">Profil bearbeiten</a>.</p>';

        mysqli_close($db);
        exit();
      }      else {
        // Benutzername wird bereits verwendet, also Fehlermeldung anzeigen
        echo '<p class="error">Dieser Benutzername ist bereits belegt. ' .
          'Bitte wählen Sie einen anderen.</p>';
        $nutzername = "";
      }
    }
    else {
      echo '<p class="error">Bitte geben Sie alle erforderlichen Daten ein. Vergessen Sie ' .
        'nicht, das Passwort zu wiederholen.</p>';
    }
  }

  mysqli_close($db);
?>

Zu einer Bestätigung, dass es geklappt hat, kommt es nicht. Die Seite bleibt weiß. Jedoch wird der Benutzer in der banker_nutzer Tabelle erfolgreich eingeschrieben. Aber die ben_id in der anderen Tabelle nicht....

Daher:
1.) Macht es Sinn diese Aktion in die Anmeldung einzufügen oder gäbe es eine einfachere und bessere Lösung es woanders zu platzieren? Bspw..: zu prüfen beim Login, ob es der erste Login ist und wenn ja, dass man dann alles einfügt?

2.) Wenn die Idee es bei der Anmeldung zu belassen gut ist, wo liegt der Hase begraben?

Bin gewillt auch nachzudenken, aber im Moment fehlt mir einfach der Denkanstoß.
Hoffe auf diesen von Außen...

Danke im Voraus.
Digitalspecht
 
PHP:
$sql2 = "INSERT INTO banker_konto (ben_id) VALUES ('$ersteid')";
$ersteid ist ein SQLstring.
Ich würd es mal mit $ersteidselect probieren
 
Also es tut sich schonmal was:
Catchable fatal error: Object of class mysqli_result could not be converted to string in ...\banker\anmelden.php on line 31

Zeile 31 ist die von dir genannte Zeile... Muss man das jetzt irgendwie zu einem String verpacken damit er damit was anfangen kann?
 
PHP:
$id = mysql_result($ersteidselect, 0);
ggf noch von mysqli_query auf mysqlquery wechseln - da ich immer objektorientiert abreite weiss ich gerade nicht, ob mysql_result mit mysqli_query funktioniert
 
PHP:
$id = mysql_result($ersteidselect, 0);
ggf noch von mysqli_query auf mysqlquery wechseln - da ich immer objektorientiert abreite weiss ich gerade nicht, ob mysql_result mit mysqli_query funktioniert

Häh? Verstehe ich jetzt nicht. Habe aber jetzt die zwei query mit result ersetzt. Sieht jetzt so aus:
PHP:
 $ersteid = "SELECT ben_id FROM banker_nutzer WHERE nutzername = '$nutzername'";
		   $ersteidselect = mysqli_result($db, $ersteid) or die(mysql_error());
		
		  $sql2 = "INSERT INTO banker_konto (ben_id) VALUES ('$ersteidselect')";
          mysqli_result($db, $sql2) or die(mysql_error());
Doch jetzt kommt: Fatal error: Call to undefined function mysqli_result() in E:\xampplite\htdocs\banker\anmelden.php on line 29
Sprich Zeile: $ersteidselect = mysqli_result($db, $ersteid) or die(mysql_error());

...
 
$ersteidselect ist keine ID sondern ein resultset von der mysqli_query
Mach dich mal in den Hilfen schlau über mysql_query und mysql_result.
 
Zurück