Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfachauswahl

Einklappen

Neue Werbung 2019

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

  • Mehrfachauswahl

    Hallo zusammen

    Hoffe mir kann da jemand helfen.
    ich versuche einen eintrag in eine datenbank zu machen. ich habe im formular ein mehrfachauswahl menu wie wird sowas in die datenbank gespeichert?

    bei mir wird jetzt jedesmal nur ein Wert gespeichert

    <select name="animal" size="6" multiple="multiple" id="animal" class="form_2">
    <option value="Bitte w&auml;hlen">Bitte w&auml;hlen...</option>
    <option value="Hund">Hund</option>
    <option value="Katze">Katze</option>
    <option value="Vogel">Vogel</option>
    <option value="Nager">Nager</option>
    <option value="Reptililen">Reptilien</option>
    <option value="Andere">Andere</option>
    </select>

    Danke im voraus


  • #2
    Es muss lauten <select name="animal[]" size="6" multiple="multiple" ...

    Kommentar


    • #3
      das hab ich nun gemacht aber jetzt wird gar nichts mehr eingetragen

      Kommentar


      • #4
        PHP-Code:
        <html>
        <body>

        <h2>Formular</h2>
        <form action="test.php" method="post">
          <p>
            <select name="animal[]" size="6" multiple="multiple">
              <option value="Bitte w&auml;hlen">Bitte w&auml;hlen...</option>
              <option value="Hund">Hund</option>
              <option value="Katze">Katze</option>
              <option value="Vogel">Vogel</option>
              <option value="Nager">Nager</option>
              <option value="Reptililen">Reptilien</option>
              <option value="Andere">Andere</option>
            </select>
          </p>
          <p><input type="submit" value="Absenden"></p>
        </form>

        <h2>var_dump $_POST</h2>
        <pre><?php var_dump$_POST ); ?></pre>

        </body>
        </html>
        Teste es einfach...

        Kommentar


        • #5
          ok und wie muss ich das dann auslesen und in die datenbank speichern?

          mehrere Felder in der Datenbank machen oder wie?

          Kommentar


          • #6
            Du brauchst eigentlich nur eine Tabelle mit einer Spalte dafür:

            Du könntest das $_POST-Array einfach mit der PHP-Funktion implode() zusammenfügen und so in die Datenbank speichern.

            PHP-Code:
            <?php 
            $animal 
            implode(","$_POST['animal']);
            mysql_query('INSERT INTO animals (name) VALUES ("'.$animal.'")'
            ?>
            Wenn du die Daten wieder ausliest kannst du sie wieder im explode zu einem Array umwandeln und mit einer foreach-Schleife ausgeben.

            PHP-Code:
            $result mysql_query('SELECT name FROM animals');
            while(
            $fetch mysql_fetch_assoc($result)) {
              
            $animal explode(","$fetch['name']);
              foreach(
            $animal as $name) {
                echo 
            $name.'<br />';
              }

            (ungetestet)

            So sollte es funktionieren.
            Ich weiß zwar nich inwiefern es die PHP-Profis hier eleganter lösen, aber es ist sicher möglich

            Kommentar


            • #7
              AHH Error by Design

              Schon mal was von Normalisierung der Datenbank gehört?
              Jeder Eintrag sollte einzeln abgespeichert werden!

              Kommentar


              • #8
                Wüsste nich warum jeder Eintrag einzeln abgespeichert werden soll.
                Ich finde, es ist so leichter, wenn z. B. noch die ID des Benutzers, der die Tiere ausgewählt hat mit abgespeichert werden soll o. ä.

                Hab ganz ehrlich auch noch kein System, Tutorial oder Buch gesehen in dem das so gemacht wird, aber ich verstehe nicht warum.
                Vll. kannst du 's mir ja erklären?

                Kommentar


                • #9
                  Such doch mal nach einem Tier!
                  Oder Zähle wie viele Tiere von Personen ausgewählt wurden.
                  Gib mir alle User aus die Vogel ausgewählt haben.

                  Geht ganz einfach WENN normalisiert. Sonst müsstest du jedes mal eine nach Text suchen und das ist 1. nicht genau, 2. Performace ?!?

                  Kommentar


                  • #10
                    Ohhhh, ich verstehe...
                    Gut meinen Ansatz solltest du am besten vergessen
                    Wusste zwar noch nich, dass die Performance drunter leidet, aber der andere Grund reicht mir natürlich aus...
                    Ich geb mich geschlagen

                    Kommentar


                    • #11
                      Die Performance leidet insofern darunter dass wenn du eben solche Abfragen machen willst du immer nach Text suchen musst. Das ist umständlicher als nach einer ID die vlt. indexiert ist zu suchen.

                      Kommentar


                      • #12
                        Hallo!

                        Ja das mit der normalisierung habe ich mir auch ganz schnell zu Herzen genommen,damals war es lazydog der mir den Schubser gab!

                        Was ich vom Sinn her nicht verstehe,das er aus einem select Feld her mehrere Tiere auswählen will,wäre das nicht einfacher mit checkboxen zu realisieren?

                        mfg der litter
                        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                        http://www.lit-web.de

                        Kommentar


                        • #13
                          Das ist doch im Endeffekt egal, ist ja nur die Art und Weise wie man es darstellt.

                          Kommentar

                          Lädt...
                          X