ARRAYS in MySQL Datenbank schreiben

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

  • ARRAYS in MySQL Datenbank schreiben

    Ich habe folgendes Problem. Ich möchte aus einem Popupmenü per Mehrfachauswahl die ausgewählten Felder in eine Tabelle reinschreiben.

    Beispiel:
    Dieses Script liegt als Template (HTML-DATEI) vor und wird von dem unten angeführtem Script includiert.

    <form action="./test_signup.php" method=post onsubmit="return">
    ...
    <select size="" name="kategorie[]" multiple>
    <option value="Alle">Alle Länder</option>
    <option value="Ägypten">Aegypten</option>
    <option value="Albanien">Albanien</option>
    <option value="Algerien">Algerien</option>
    <option value="Anderes Land">Anderes Land</option>
    ...
    .....
    <option value="US">USA</option>
    <option value="UZ">Usbekistan</option>
    <option value="VE">Venezuela</option>
    <option value="AE">Vereinigte Arabische Emirate</option>
    <option value="BY">Weissrussland</option>
    <option value="CY">Zypern</option>
    </select>


    und so soll das in die MySQL Datenbank geschrieben werden:

    PHP-Code:
    <?

    $kategorie = $_POST["kategorie"];
    $Anzahl = count($kategorie);
    for($i=0;
    $i<$Anzahl;
    $i++)
    {

    // dient der Überprüfung, ob die Daten übernommen werden.

    echo $kategorie[$i];
        $kategorie_neu =  $kategorie[$i];
     }
    include("./includes/config.php");

     
    if ( $REQUEST_METHOD=="POST" )
         {


                  mysql_query("INSERT INTO

                          kategorie ( kategorie)
                               VALUES ('$kategorie_neu'  )

                               ");

                       include("./templates/test.html");

                  }


         else
         {
         include("./templates/test.html");
         }


    ?>
    Jetzt aber ist folgendes Problem da, dass über $kategorie_neu nur der letzte ausgewählte Begriff gespeichert wird.

    Wer kann mir helfen?
    Zuletzt geändert von donner_blitz; 27.06.2005, 15:33.

  • #2
    Bitte verwende die PHP-Tags des Forums!

    Kommentar


    • #3
      Original geschrieben von onemorenerd
      Bitte verwende die PHP-Tags des Forums!
      Was ist mit den PHP-Tags gemeint. Wenn ich einen Fehler begangen habe, dann bitte ich um Entschuldigung.

      Kommentar


      • #4
        Schau!

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          Schau!
          alles klar - Danke. Für's nächste Mal weiß ich dann bescheid.

          Kommentar


          • #6
            was willst du mit der Schleife bezwecken?

            außerdem, könnte implode() dir helfen.
            Bsp:
            PHP-Code:
            echo implode('',$_POST['kategorie']); 

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #7
              Original geschrieben von xManUx
              was willst du mit der Schleife bezwecken?

              außerdem, könnte implode() dir helfen.
              Bsp:
              PHP-Code:
              echo implode('',$_POST['kategorie']); 
              OK. Nur wie wird implode() in eine Variable umgesetzt.

              PHP-Code:
              $kategorie_neu = (implode('',$_POST['kategorie']); 
              so funktioniert es nicht. Immerhin muss dann die Variable $kategorie_neu benutzt werden, um den Inhalt in die Datenbank einzufügen.

              Kommentar


              • #8
                Zu viel Sonne? Schattenbaum!
                PHP-Code:
                for ($i=0$i<$Anzahl$i++) {
                    
                $kategorie_neu =  $kategorie[$i];

                Jetzt aber ist folgendes Problem da, dass über $kategorie_neu nur der letzte ausgewählte Begriff gespeichert wird.
                Weil $kategorie_neu eine einfache Variable ist, sie kann nur einen einzigen Wert enthalten. In jedem Schleifendurchlauf wird ihr ein Wert aus dem Array $kategorie zugewiesen und im letzten Durchlauf eben der letzte.

                Baue ganz oben im Script folgendes ein
                PHP-Code:
                $kategorie_neu = (implode(', '$_POST['kategorie']);
                echo 
                $kategorie_neu
                und überleg mal, ob und wenn dann wie sich das Ergebnis in deiner Query verwursten läßt.

                Kommentar


                • #9
                  ... Script folgendes ein
                  PHP-Code:
                  $kategorie_neu = (implode(', '$_POST['kategorie']);
                  echo 
                  $kategorie_neu
                  ...
                  So wird das aber auch nicht klappen. Da ist eine Klammer zuviel im Code. Du meinst sicherlich
                  PHP-Code:
                  $kategorie_neu implode(', '$_POST['kategorie']); 

                  Kommentar


                  • #10
                    Original geschrieben von onemorenerd
                    Zu viel Sonne? Schattenbaum!
                    PHP-Code:
                    for ($i=0$i<$Anzahl$i++) {
                        
                    $kategorie_neu =  $kategorie[$i];

                    Weil $kategorie_neu eine einfache Variable ist, sie kann nur einen einzigen Wert enthalten. In jedem Schleifendurchlauf wird ihr ein Wert aus dem Array $kategorie zugewiesen und im letzten Durchlauf eben der letzte.

                    Baue ganz oben im Script folgendes ein
                    PHP-Code:
                    $kategorie_neu = (implode(', '$_POST['kategorie']);
                    echo 
                    $kategorie_neu
                    und überleg mal, ob und wenn dann wie sich das Ergebnis in deiner Query verwursten läßt.
                    Der Tipp ist super. Folgendes Script habe ich eingegeben:
                    PHP-Code:
                    $kategorie_neu = (implode(', '$_POST['kategorie']));
                    echo 
                    $kategorie_neu
                    Die Funktion ist gegeben, jedoch beim Aufruf der Datei erscheint folgende Fehlermeldung:

                    PHP-Code:
                    WarningBad arguments to implode() in test_signup.php on line 3 

                    Kommentar


                    • #11
                      Lies mal meinen Post vor deinem

                      Kommentar


                      • #12
                        Hoppla, sorry.
                        Nochmal und gleich einen Schritt weiter:
                        PHP-Code:
                        echo '<pre>';
                        print_r($_POST['kategorie']);
                        echo 
                        '</pre>';

                        $kategorie_neu implode(", "$_POST['kategorie']);
                        echo 
                        $kategorie_neu

                        Kommentar


                        • #13
                          Original geschrieben von onemorenerd
                          Hoppla, sorry.
                          Nochmal und gleich einen Schritt weiter:
                          PHP-Code:
                          echo '<pre>';
                          print_r($_POST['kategorie']);
                          echo 
                          '</pre>';

                          $kategorie_neu implode(", "$_POST['kategorie']);
                          echo 
                          $kategorie_neu
                          Super und Besten Dank. Jetzt funktioniert alles und das ohne Fehlermeldung.

                          Kommentar


                          • #14
                            Ich könnte auch noch serialize() und unserialize() empfehlen - dann klappts auch mit mehrdimensionalen Arrays....

                            nur ne idee

                            Kommentar

                            Lädt...
                            X