Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfachwerte in einer DB speichern?

Einklappen

Neue Werbung 2019

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

  • Mehrfachwerte in einer DB speichern?

    Hallo ich bin neu und habe mal eine Frage:
    Wie kann ich Mehrfachwerte (Checkbox oder Auswahlliste mit Mehrfachwerten) in meiner Datenbank in einem Feld speichern. Bislang bekomme ich entweder den letzten Wert oder für jenden Wert ein neuen Eintrag?

  • #2
    was sind denn mehrfachwerte?

    Kommentar


    • #3
      re: was sind mehrfachwerte?

      Bei einer Checkbox habe ich die Möglichkeit mehrere Werte auszuwählen (value). Diese sind doch Mehrfachwerte - oder ?!?

      Kommentar


      • #4
        meinst du etwa ein array?
        wenn ja, dann musste alle elemente des arrays in einem array verknüpfen und mit trennzeichen trennen. diesen string speicherste dann in der db.

        bsp:
        Code:
        $arr = array("apfel", "banane", "birne", "kirsche");
        $string = "";
            foreach($arr  as $a) {
                if($string=="") {
                    $string = $a;
                } else {
                    $string .= '\\'.$a;
                }
            }

        Kommentar


        • #5
          Allso wenn ich das richtig sehe hast du von mir aus 3 checkbox die alle 3 zb test heissen.

          jetzt möchtest du das der User auch alle drei auswählen kann.

          da hilft dir nur die Boxen test1,test2 test3 zu nennen.
          ansonsten hast du immer nur einen wert.
          Gruß JEGO ;-)

          Ein PHP Script tut, was Du schreibst, nicht was Du willst.

          Kommentar


          • #6
            oder meinst du eine Select box?
            Gruß JEGO ;-)

            Ein PHP Script tut, was Du schreibst, nicht was Du willst.

            Kommentar


            • #7
              Re: Mehrfachwerte in einer DB speichern?

              Zitat von numen
              Wie kann ich Mehrfachwerte (Checkbox oder Auswahlliste mit Mehrfachwerten) in meiner Datenbank in einem Feld speichern. Bislang bekomme ich entweder den letzten Wert oder für jenden Wert ein neuen Eintrag?
              11.10. Wie kann man Checkboxen verarbeiten?
              http://www.dclp-faq.de/q/q-formular-checkbox.html

              Kommentar


              • #8
                Werte die gespeichert werde

                Also das Erzeugen der Werte ist kein Problem - es ist sowohl eine check box als auch select box, von denen immer mehrere Werte an die Datenbank übergeben wird. Leider wird entweder der letzte Wert gespeicher (Select box) oder mehrere Einträge erzeugt (check box).

                Wie bekomme ich alle Werte in das eine Feld der Datenbank eingetragen?

                Kommentar


                • #9
                  Wie bekomme ich alle Werte in das eine Feld der Datenbank eingetragen?
                  indem du uns erstmal dein code gibst, denn ohne ist es schwer zu erraten, wo dein fehler liegt.

                  Kommentar


                  • #10
                    OK mit dem CODE ist das Problem (Fehler) wohl deutlicher

                    OK mit dem CODE ist das Problem (Fehler) wohl deutlicher
                    Also als erstes eine dynamische Selectbox:
                    ...
                    echo "<tr>\n";
                    echo "<td>Selectbox:</td>\n";
                    echo "<td>\n";
                    ## Ab hier Dropdown ################################################## ##########
                    function buildselect($result, $field, $name,
                    $multiple = '', $size = 1)
                    {
                    echo "<select name=\"$name\" size=$size>";
                    $i=0;
                    echo '<option value="--first--">'.$strAtBeginningOfTable."</option>\n";
                    while($row = mysql_fetch_assoc($result))
                    {
                    echo "<option value=\"" . $row[$field] . "\">";
                    echo $row[$field];
                    echo "</option>\n";
                    }
                    mysql_data_seek($result, 0);
                    echo "</select>";
                    }
                    ### Datenbankverbindung ###
                    $db = "dbase1";
                    @mysql_select_db ($db) or die ("Kann Datenbak nicht finden");
                    $result = mysql_query("SELECT * FROM tabelle3", $conn);
                    buildselect($result, 'bezug', 'A_bezug', 'multiple', 1);
                    ################################################## ##############################
                    echo "</td>\n";
                    echo "</tr>\n";
                    ...

                    Und so wird in die Datenbank gespeichert:
                    ...
                    if(@mysql_connect($host, $user, $pwd))
                    {
                    if(@mysql_select_db($dbname2))
                    {
                    $sql = "INSERT INTO $tblname4
                    (bezug)
                    VALUES ("
                    . "'$A_bezug');";
                    ...

                    Danke für die regen Antworten

                    Kommentar


                    • #11
                      Du warst so nah an der Antwort
                      11.8. Wie kann man ein <select multiple> verarbeiten?
                      http://dclp-faq.de/q/q-formular-select-multiple.html

                      Kommentar


                      • #12
                        Mh??
                        ich versteh es immer noch nicht???
                        Vielleicht liegt es daran das ich die Daten in einer Seite verarbeite! Die Seite in der die Daten erfasst werden schreibt sie auch in die Datenbank.
                        Auf jedenfall ändert es sich nicht.

                        Kommentar


                        • #13
                          Vielleicht liegt es daran das ich die Daten in einer Seite verarbeite!
                          Das ist egal, ob eine Seite oder 2.
                          Es stand doch alles auf der Seite, als erstes musst du den Namen als Array angeben.
                          Code:
                          buildselect($result, 'bezug', 'A_bezug[]', 'multiple', 1);
                          Dann musst du beim SELECT natürlich auch multiple mit angeben.

                          Und am Ende fragst du einfach die Variable ab.
                          Code:
                          if (isset($_POST["A_bezug"])) {
                            $sql="INSERT INTO Tabelle(A_bezug) VALUES ('".
                            implode("'),('",$_POST["A_bezug"])."');";
                            echo $sql;
                          }
                          Den SQL-String natürlich zur Datenbank schicken.

                          Kommentar


                          • #14
                            Ich seh den Wald vor Bäumen nicht

                            Oh Mann das scheck ich jetzt nicht?!? Irgendwie klappt das bei mir trotzdem nicht! ich habe das jetzt so eingebaut, aber es klappt trotzdem nicht?
                            Hier der Code - ich sehe den Fehler nicht:
                            <?php
                            include("../hidden/db_connect.inc");
                            require("../hidden/biblio.inc");
                            ?>
                            <table cesspadding=10 cellspacing=10>
                            <tr><td valign=top>
                            <?php
                            Menue()
                            ?>
                            </td>
                            <td valign=top>
                            <?php

                            if(!isset($set))
                            {
                            seitenAnfang("Neues Dokument");
                            echo "<h2 align=center><u>Neues Dokument</u></h2>\n";
                            echo "<form name=\"new_daten\" onSubmit=\"return checkdata();\">\n";
                            echo "<input type=\"hidden\" name=\"set\" value=\"true\">\n";
                            echo "<table border=\"0\">\n";

                            ######### Ab hier Auswahlfeld Bezug ########################################
                            echo "<tr>\n";
                            echo "<td>Bezug:</td>\n";
                            echo "<td>\n";
                            ## Ab hier Dropdown ################################################## ##########
                            function buildselect2($result, $field, $name,
                            $multiple = '', $size = 1)
                            {
                            echo "<select multiple=\"multiple\" name=\"$name\" size=$size>";
                            $i=0;
                            echo '<option value="--first--">'.$strAtBeginningOfTable."</option>\n";
                            while($row = mysql_fetch_assoc($result))
                            {
                            echo "<option value=\"" . $row[$field] . "\">";
                            echo $row[$field];
                            echo "</option>\n";
                            }
                            mysql_data_seek($result, 0);
                            echo "</select>";
                            }
                            ### Datenbankverbindung ###
                            $db = "edv-wissen";
                            @mysql_select_db ($db) or die ("Kann Datenbak nicht finden");
                            $result = mysql_query("SELECT * FROM bezug ORDER BY bezug", $conn);
                            buildselect2($result, 'bezug', 'A_bezug[]', 'multiple', 4);
                            ##### Eintrag "Neues Dokument" #################################################
                            echo "&nbsp&nbsp&nbsp";
                            echo "<a href=\"bezug.php?\" target=\"_self\"><img src=\"../images/bearbeiten.jpg\" border=\"0\" alt=\"Neuer Bezug\">Neu</a>\n";
                            ################################################## ##############################
                            echo "</td>\n";
                            echo "</tr>\n";
                            echo "</table>\n";
                            echo "<hr>\n";
                            echo "

                            \n";
                            echo "<input type=\"submit\" value=\"speichern\">\n";
                            echo "<input type=\"reset\" value=\"verwerfen\">\n";
                            echo "&nbsp&nbsp|&nbsp&nbsp";
                            ####### Zur Übersicht ################################################## ########
                            echo "<a href=\"daten.php?"
                            . "\" target=\"_self\"><img src=\"../images/zurueck.jpg\" border=\"0\" alt=\"Zurück zur Auswahl\">&nbspZur Auswahl</a>";
                            echo "</form>\n";
                            } //!isset($set)
                            else
                            {
                            include("../hidden/db_connect.inc");
                            seitenAnfang("Neues Dokument anlegen");

                            if(@mysql_connect($host, $user, $pwd))
                            {
                            if(@mysql_select_db($dbname2))
                            {
                            if (isset($_POST["A_bezug"])) {
                            $sql="INSERT INTO $tablname4(bezug) VALUES ('".
                            implode("'),('",$_POST["A_bezug"])."');";
                            echo $sql;
                            } //!isset($set)
                            else
                            echo "
                            kein isset möglich
                            \n";
                            } //mysql_select_db()
                            else
                            echo "
                            Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!
                            \n";
                            mysql_close();
                            } //mysql_connect()
                            else
                            echo "
                            Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.
                            \n";
                            } //else-Zweig !isset($set)
                            seitenEnde();
                            ?>

                            Kommentar


                            • #15
                              Code:
                              $sql="INSERT INTO $tablname4(bezug) VALUES ('". 
                              implode("'),('",$_POST["A_bezug"])."');"; 
                              echo $sql;
                              Schickst du das ganze auch irgendwann einmal zur DB?

                              Kommentar

                              Lädt...
                              X