• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

id als Fremdschlüssel in andere Tabelle übernehmen

Matze27

Mitglied
Hallo,
ich bin noch ziemlicher Anfänger in Sachen Mysql und bräuchte mal eure Hilfe.
Zu meinem Problem:
Ich füge Daten in eine Tabelle *user* ein, danach möchte ich die *iduser* aus dieser Tabelle ermitteln und diese dann als Fremdschlüssel in die Tabelle *adr* einfügen. Leider bekomme ich immer folgende Fehlermeldung:
Object of class mysqli_result could not be converted to string

Hier mein code:
PHP:
//Prüfen ob der Kunde schon in der Datenbank vorhanden ist 
            $sql = "SELECT * FROM fh_user WHERE benutzername = '$nutzername'"; 
             
            $daten = mysqli_query($db, $sql) or die ('Fehler bei der Datenbankabfrage'); 
            if (mysqli_num_rows($daten) == 0) { 
            //Kunde ist noch nicht in der Datenbank und kann eingetragen werden 
              $sql = "INSERT INTO fh_user (benutzername, email, password, vorname, nachname, tel) VALUES" .  
              "('$nutzername', '$email', SHA('$passwort1'), '$vorname', '$nachname', '$tel')"; 
              mysqli_query($db, $sql);  
               
//iduser ermitteln 
              $sql = "SELECT iduser FROM fh_user WHERE benutzername = '$nutzername'"; 
              $iduser = mysqli_query ($db, $sql); 
              //Adresse eintragen 
              $sql = "INSERT INTO adr (strasse, haus_nr, ort, plz, iduser) VALUES" . 
              "('$strasse', '$haus_nr', '$stadt', '$plz', '$iduser')"; 
              mysqli_query($db, $sql); 
              //Name der Gastronomie eintragen 
              $sql = "INSERT INTO gastro (gastro_name) VALUES" . 
              "('$gastro_name')"; 
              mysqli_query($db, $sql);
Ich hoffe Ihr könnt mir Helfen
 
Werbung:
<edit>War Quatsch, was hier vorher stand</edit>

Wo kommt $db her?

 
Zuletzt bearbeitet von einem Moderator:
Danke für deine schnelle Antwort. Werde leider nicht schlau aus der Manual...ausser das es vielleicht an meinem verwendeten Datentyp liegt.
Liege ich da richtig?
 
Werbung:
Ich habe mich korrigiert, sieh' dir meinen geänderten Beitrag noch mal an.
 
Hallo,
hab es jetzt soweit hinbekommen das die iduser in der *adr* Datenbank übernommen wird, nur leider wird sie sepperat eingetragen. Ich versuchs gerade mit folgender INSERT Anweisung:

PHP:
 $sql = " INSERT INTO adr (iduser) SELECT iduser FROM fh_user WHERE benutzername ='$nutzername'";

Jetzt möchte ich diese id noch den zuletzt eingetragenen Datensatz zuordnen.
 
Werbung:
Soweit ich das verstanden habe, bezieht sich die Funktion mysqli_insert_id, auf das letzte query was ich ausgeführt habe. Nun habe ich es mal folgender Maßen brobiert:

PHP:
//Adresse eintragen
              $sql = "INSERT INTO adr (strasse, haus_nr, ort, plz) VALUES" .
              "('$strasse', '$haus_nr', '$stadt', '$plz')";
              mysqli_query($db, $sql);
              //iduser ermitteln
              $adr_id = mysqli_insert_id();
               $sql = " INSERT INTO adr (iduser WHERE adr_id = '$adr_id')  SELECT iduser FROM fh_user WHERE benutzername ='$nutzername'";
              mysqli_query ($db, $sql);
Also ich finde, dass ich diesmal richtig liege :shock:, nur funktioniert es nicht.
Erwartet die Funktion mysqli_insert_id() noch einen Wert?
 
PHP:
$sql = "INSERT 
          INTO 
            `fh_user`
              (`benutzername`, 
               `email`, 
               `password`, 
               `vorname`, 
               `nachname`, 
              `tel`) 
          VALUES
               '$nutzername', 
               '$email', 
               SHA('$passwort1'), 
               '$vorname', 
               '$nachname', 
               '$tel')"; 
             
mysqli_query($db, $sql)
   or die ("MySQL-Error: " . mysqli_error());
   
$userId = mysqli_insert_id($db);

$sql = "INSERT 
          INTO 
            `adr` 
              (`strasse`, 
               `haus_nr`, 
               `ort`, 
               `plz`, 
               `iduser`) 
          VALUES 
              ('$strasse', 
               '$haus_nr', 
               '$stadt', 
               '$plz', 
               '$userId')"; 
               
mysqli_query($db, $sql)
   or die ("MySQL-Error: " . mysqli_error());
 
Danke...Danke.
Bin gar nicht auf die Idee gekommen...gleich die userid zu ermitteln. Aber deswegen versuche ich es ja gerade zu lernen.
Eine kleine Frage noch. Der Parameter $db, muss ich den der Funktion übergeben, oder ist der nur optional? Hatte das so aus der Manual verstanden
 
Werbung:
Optional ist das nur, wenn in der Doku der Parameter in eckigen Klammern steht.
 
Zurück
Oben