Inhalt aus foreach in html select

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

  • Inhalt aus foreach in html select

    Hallo :]

    mein Problem ist folgendes:

    Vorhanden ist eine MySQL Datenbank - und aus einer Spalte möchte ich die Werte in ein Selectfeld.

    Werte sind folgende (1, 1, 3, 5, 1, 3, 5, 10)


    Ziel ist: Doppelte Einträge im Selectfeld vermeiden - so dass also nur 1, 3, 5 und 10 zur Auswahl im HTML options - selectfeld steht.


    Mein Lösungsansatz ist wie folgt:


    PHP-Code:
    //Ausgabe des Array $test -->
    //Array (     [1] => 19     [3] => 9     [5] => 7     [10] => 1

    foreach($test as $brbr => $wert){
    $a[]=$test[$brbr]['spaltenname'];
    foreach(
    $a as $key => $value)
    $testx[$value]++;}
    print_r ($testx);
    echo 
    '<br>';

    //SELECT-Feld erstellen + Auswahlmöglichkeiten erzeugen aus Array
    echo "<select name='auswertung2'>";
    //Array $test auslesen 
    foreach($test as $brbr => $wert){
    $a=$test[$brbr]['spaltenname'];
    foreach(
    $a as $key => $value)
    $testx[$value]++;
    }
    echo 
    "<option>".$text."</option>";
    echo 
    "</select><br><br>"
    Um es mal anders zufomulieren - Der Spalteninhalt soll zur Auswahl im select feld gestellt werden - aber jeder Wert nur einmal.

    Ich habe schon mit der Funktion array_unique versucht, doppelte Einträge zufiltern - leider ohne Erfolg.


    Wäre nett, wenn mir jmd auf die Sprünge helfen kann, oder eine nützliche brauchbare Funktion nenn kann, da ich schon den halbe Tag damit verbringe, das Problem zulösen...

    Danke im Vorraus

    mfg.

  • #2
    Hi.

    Einmal kannst du über SQL mit DISTINCT arbeiten (mal googeln), oder mit einer Funktion doppelte werte aus einem Array entfernen (Bsp.):

    PHP-Code:
    function DoppelteWerteEntfernen($AlterArray)
    {
        
    $AlterArray array_unique($AlterArray);
        
    $ie 0;

        foreach(
    $AlterArray as $Wert)
        {
            
    $NeuerArray[$ie] = $Wert;
            
    $ie++;
        }

        return 
    $NeuerArray;

    streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Hallo,

      dann hast du array_unique falsch benutzt. Im Gegensatz zu z. B. sort verändert es nicht das Array selbst, sondern gibt ein neues zurück:

      PHP-Code:
      $myArray array_unique($myArray); 
      Edit: @streuner: Diese Funktion ist überflüssig. meinst du zufällig das hier?:
      PHP-Code:
      $myArray array_values(array_unique($myArray)); 
      Gruß,

      Amica
      Zuletzt geändert von AmicaNoctis; 24.03.2010, 15:26.
      [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


      • #4
        Danke füre eure schnellen Antworten - aber ichbin ja schon so weit, dass ich ein Array habe, wo die Werte drinne sind, die ich brauche (1, 3, 5, 10) nun muss ich aus diesem Array, diese 4 Werte ins select Feld bringen.

        "[COLOR=#000000][COLOR=#FF9900]Array ( [1] => 19 [3] => 9 [5] => 7 [10] => 1[/COLOR][/COLOR]"

        Die Zahlen in den eckigen Klammern, brauche ich im selectfeld. Könnt ihr pls helfen, dies zu realisieren?
        [COLOR=#000000][COLOR=#FF9900]


        mfg
        [/COLOR][/COLOR]

        Kommentar


        • #5
          PHP-Code:
          <select>
          foreach (
          $arr as $key => $val) {
          <
          option value="$key">$val</option>
          }
          </
          select
          Sofern mich mein Grundwissen nicht ganz verlassen hat.
          Wozu brauchen wir Kraftwerke, wenn der Strom aus der Steckdose kommt.

          Kommentar


          • #6
            array_keys() liefert dir die Schlüssel des Arrays zurück.

            Bitte benutze die Code-Tags und vermeide selbstgefärbten Text.

            Edit: @ron
            PHP-Code:
            echo "<select>";
            foreach (
            $arr as $key => $val) {
                echo 
            "<option value=\"" $key "\">" $val "</option>";
            }
            echo 
            "</select>"
            Zuletzt geändert von AmicaNoctis; 24.03.2010, 15:51.
            [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


            • #7
              Zitat von AmicaNoctis Beitrag anzeigen
              Bitte benutze die Code-Tags und vermeide selbstgefärbten Text.
              meinst du mich ? oder habe ich den falschen Code ausgewählt. ?
              Wozu brauchen wir Kraftwerke, wenn der Strom aus der Steckdose kommt.

              Kommentar


              • #8
                OffTopic:
                Zitat von ronronron3005 Beitrag anzeigen
                meinst du mich ?
                Die Hinweise zur Formatierung gingen an new2php und bezogen sich auf sein retinoblastogenes Orange.

                An dich ging nur die Code-Korrektur.
                [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


                • #9
                  DANKE!!!!!! (:

                  Der Vorlage von dir, AmicaNoctis hats gebracht (: ich hab noch bisscehn dran rumgespielt <: dann hats gepasst^^

                  PHP-Code:
                  <?php
                  //Array $testx mit inhalt wird erzeugt
                  echo "<br><br>";
                  foreach(
                  $test as $brbr => $wert){
                  $a[]=$test[$brbr]['spaltenname'];
                  foreach(
                  $a as $key => $value)
                  $testx[$value]++;}

                  //SELECT-Feld erstellen + Inhalt erzeugen aus Array
                  echo "<select name='auswertung2'>";

                  foreach (
                  $testx as $key => $val) {
                  echo 
                  "<option value=\"".$val."\">".$key."</option>";
                  }

                  echo 
                  "</select><br><br>";
                  So funktioniert es nun, ich habe im Selecfeld die Einträge aus der DB, ohne dass welche doppelt vorkommen.

                  Danke nochmal (:

                  Kommentar

                  Lädt...
                  X