Ankündigung

Einklappen
Keine Ankündigung bisher.

optionsfelder verketten und mit einer Datenbank verknüpfen.

Einklappen

Neue Werbung 2019

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

  • optionsfelder verketten und mit einer Datenbank verknüpfen.

    Hallo zusammen.

    als erstes, Ich bin absoluter Anfänger und versuche mir gerade eine Kleine Webseite über meine Lego Technik Modelle zu erstellen. wobei der Weg das Ziel sein sollte.^^

    Mit HTML, PHP, CSS usw. beschäftige ich mich erst seit kurzem.

    Nun suche ich verzweifelt an einem Tutorial wie ich optionsfelder von einer DAtenbank füttern kann und dabei mehrer Optionsfelden verkette.

    Bsp..
    Optionsfeld1 wird von der Datenbank gefüllt, das Klappt hiermit.

    PHP-Code:
    Weche Model suchen sie?
    <select>

    <?php

        $sql 
    "SELECT Genre FROM `lego` ORDER BY `genre` ASC";
        
    $result mysql_query($sql) OR die(mysql_error());
            while(
    $row mysql_fetch_assoc($result)) {
    echo 
    "<option name='Genre".$row['Genre']."'>".$row['Genre']."</option>";
    }
    ?>

    </select>
    Auswahlmöglichkeiten hier sind LKW, Bagger, Kräne, Trecker und sonstiges.

    nun möchte ich das in dem Moment wenn einer zb. auf Bagger klickt ein neues Auswahlfeld aufploppt mit allen vorhandenen Baggern, bzw bei Kränen alle Kräne die ich habe.
    Dort sollen dann die passenden Modelle aufgelistet sein die man durch einen Klick darauf sich auf einer Seite dann anschauen kann.

    Ist sowas Möglich ? oder bin ich hier falsch?

    wie ich sowas nur in HTML mache ohne DB kann ich mir denken, Mir gehts aber ums erlernen von Solchen Funkionen der Datenbank.

    lg wedelin


  • #2
    Hallo und willkommen im Forum.

    Für dein Vorhaben wirst du Javascript und evtl. Ajax brauchen. Kanns nur ganz grob beschreiben, weil ich mich noch nicht genug mit JS auseinander gesetzt habe..

    Ajax:
    Auf dein Auswahlfeld legst du eine Funktion, oder einen Eventlistener, der das change-Event abfragt.
    Die aufgerufene Funktion sendet per Request deine Parameter(deine Auswahl) an ein anderes PHP-Script, dort findet dann die Datenbankabfrage statt und du lässt dir das Ergebnis zurückgeben
    Du fängst das Ergebnis des Requests auf und reagierst entsprechend auf Erfolg/Fehlschlag indem du das Ergebnis darstellst oder ne Meldung ausgibst

    Bei der Version ohne Ajax, lädst du schon vorher alle Ergebnisse ins Ursprungsscript und bringst sie in eine Form mit der du dann später weiterarbeiten kannst. Legst z.B. verschiedene Arrays in JavaScript an, mit den jeweiligen Ergebnissen.
    In der Funktion, die durch deine Auswahl aufrufst, wird dann den Parametern entsprechend, das Array zur Darstellung verwendet.


    Wie du siehst, die Datenbank spielt bei deinem Vorhaben eher eine kleine Rolle.
    Trotzdem:
    Standardtext für die Datenbankverbindung:
    Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
    Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
    Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
    Auf der Seite gibt es übrigens auch für andere Themen gute Tutorials.
    Relax, you're doing fine.
    RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

    Kommentar


    • #3
      Vielen Dank für deine Antwort. Dann werden ich mal schauen was ich dort finde was mir weiterhilft. Ich hab ja Zeit.^^

      lg

      Kommentar


      • #4
        Also wenn ich das richtig verstehe geht es dir erstmal darum die richtigen Datensätze im Bezug auf die Auswahl aus der DB auszulesen!?

        Wenn dem so ist dann brauchst du eine Variable in der Datenbankabfrage, nämlich die WHERE Klausel...

        z.B.: SELECT irgendwas FROM irgendwo WHERE modell = $variable

        Wie schon erwähnt solltest du dir es gleich richtig angewöhnen mit PDO!

        Ich habe dir mal fix eine Beispiel Funktion getippt wie so etwas aussehen könnte, beachte das hier keine verbindung zur DB hergestellt wird. Diese würde in der Vartiable '$this->db' hinterlegt sein...
        Also hier die Funktion als prepared statement (PDO):
        PHP-Code:
        // $value ist die variable die du an die funktion übergibst    
        public function sqlSelect ($value) {
        // Hier würd die Abfrage vorbereitet, :id ist ein Platzhalter...
                
        $stmt $this->db->prepare ("SELECT irgendwas "
                                           
        ."FROM irgendwo "
                                           
        ."WHERE id = :id");
        // ...dem hier der Wert $value zugewießen wird. $stmt->execute führt das
        // Statement aus.       
                
        $stmt->execute (array (':id' => $value));
        // Jetzt wird das Ergebnis als array in der variable $result gespeichert....
                
        $result $stmt->fetchAll(PDO::FETCH_ASSOC);
        // ...und mit return an den Aufruf zurück gegeben!
                
        return $result;
            } 
        Ich hoffe das hilft dir irgendwie weiter!
        lg Markus

        Achja: Die entsprechende id würdest du dann z.B über eine select box an die funktion übergeben...
        Gelber Schnee ist kein Zitroneneis!

        Kommentar

        Lädt...
        X