MYSQL- Anfängerfrage 2 Tabellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MYSQL- Anfängerfrage 2 Tabellen

    Hallo,
    ich bin MYSQL Anfänger und habe folgendes Problem.
    Ich habe zwei Tabellen die ich mit Daten befüllen möchte. Die Werte waren jetzt auch nur mal so zum Testen ...könnten auch Bücher mit Autoren sein oder oder oder..... Ich bin im Moment am PHp und MYSQL lernen. Habe mir Bücher zugelegt und versuche es mir zu erabeiten. Aber man hat halt manchmal ein Verständnisproblem und kommt nicht weiter . Deswegen habe ich mich an die Profis gerichtet.

    Tabelle 1: Liste
    id (primärschlüssel und auto_increment)
    vorname
    nachname
    idort

    id|vorname|nachname|idort
    1| Hans| Heinrich| 1
    2| Marion| Müller| 2
    3|Uta| Geske| 4
    4| britta| Meier| 3
    5|Thorsten| Mann| 1
    6|Dirk| Passau| 3

    Tabelle 2 : ort

    id2 primärschlüssel und auto_increment)
    ort

    id2|ort
    1|Berlin
    2|München
    3|Hamburg
    4|Frankfurt

    Mit meiner Abrfage (SELECT vorname, nachname, ort FROM liste LEFT JOIN ort ON (ort.id2=liste.idort))bekomme ich auch schon mein Ergebnis so wie ich es haben möchte.

    vorname, nachname, ort (mit id aus tabelle 2)
    Hans| Heinrich| Berlin
    Marion| Müller| München
    Uta| Geske| Frankfurt
    britta| Meier|Hamburg
    Thorsten| Mann| Berlin
    Dirk| Passau| Hamburg

    Problem 1:
    Wie kann ich Daten in die Tabellen schreiben?
    wenn ich in München wohne würde ich bei Ort ja München schreiben und wie kommen die Daten in Abhängigkeit in die Tabellen?
    Den grund Insert Befehl kenne ich ... wäre ja dann so
    INSERT INTO liste (vorname,name,ort ) VALUES ('Hans','Meier','Berlin')
    was ich nicht verstehe wie ich es hin bekomme dass dann in der Tabelle Liste die 1 für Berlin steht. Also dieses Tabelübergreifende Eintragen mit den Id werten. Hoffe ihr versteht mich.

    Wir wäre hier der SQL Befehl?

    Was würde passieren wenn ich nun Köln wohne und dies dann eintrage wird dann automatisch eine neue id erzeugt oder muss ich den Ort vorher in der Tabelle 2 anlegen ... das ist aber dann auch nicht gut ich weiß ja nicht aus welcher Stadt die neuen Personen kommen.
    Problem 2
    Ich möchte im Formular ein Dropdown haben und ich habe dies auch schon Probiert und ich bekomme auch die Daten aus der DB in das Dropdownfeld. Die Frage ist dann nur wie kann der user einen neuen Eintrag einfügen der nicht im Dropdown drin ist. Muss ich dann ein extra Textfeld machen oder gibt es hier auch wieder einen Trick das Dropdown zu Beschreiben. Mal angenommen man möchte, dass der user Einträge generieren kann
    Bestimmt ist es ganz einfach zu lösen ... ich habe einen Knoten im Hirn. Auch die suche hat nicht geholfen oder ich habe die falsche Fragestellung.
    Vielleicht könnt ihr mir helfen

    Danke

    Flo

  • #2
    Hallo,

    das mit den Drop-Downs ist schonmal der richtige Ansatz. Da beim Einfügen einer Person der Ort ja kein Textfeld ist, sondern der numerische Schlüsselwert, kannst du natürlich nicht „München“ dort reinschreiben, sondern musst stattdessen die 2 übergeben.

    Die option-Elemente einer Drop-Down-Liste haben ein value-Attribut, welches du mit der ID des ORts füttern kannst. Dieser Wert kommt dann auch bei PHP an und du bekommst eben diese 2 als Wert zum Einfügen, wenn der Benutzer „München“ ausgewählt hat.

    Um einen neuen Ort hinzuzufügen, brauchst du ein zusätzliches Eingabefeld und musst (wenn dort was drin steht) den Ort vor der Verarbeitung der Personendaten anlegen. Die ID dieses neu angelegten Ortes bekommst du mit PDO::lastInsertId() bzw. MySQLi::insert_id bzw. mysql_insert_id() heraus und kannst diese dann als idort einfügen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar

    Lädt...
    X