String vergleichen und dann in Dropdown Menü ausgeben

atlantyz

Erfahrenes Mitglied
Hallo,

ich habe mal wieder ein PHP Problem. Also, ich lese Daten aus unterschiedlichen Datenbanken aus. Anschließend möchte ich diese vergleichen und dann dementsprechend in nem Drop-Down Menü einen Eintrag "selecten".

So, dazu hab ich folgendes gebaut:

PHP:
while ($cpu = mysql_fetch_assoc($cpuerg)) {
   if (stristr($cpu_bearb, $cpu["cpu_bezeichnung"]) != false){
      $checked = 'selected';
   }
   echo " <option value = ' " . $cpu["cpu_id"] . "' ".$checked.">".$cpu["cpu_bezeichnung"]."</option>\n";
   echo $cpu_bearb;
}
echo "</select>\n";

In $cpu_bearb steht folgendes drin: Pentium 4 CPU 3.00GHz
In $cpu["cpu_bezeichnung"] steht folgendes: Pentium 4, bzw. da es ne Schleife ist, sind noch zusätzlich folgende Werte enthalten: Pentium II, Pentium III, Pentium, Celeron usw.

So, laut meiner Logik müsste der ja jetzt... sobald er an den Wert "Pentium 4" kommt, erkennen, dass das in $cpu_bearb auch drin ist und dann der Variablen $checked den Wert "selected" geben. Und dann müsste doch dieser Wert (Pentium 4) in dem Drop-Down Menü selected sein. Das funktioniert aber nicht. Entweder er macht gar nix selected oder er selected den letzten Eintrag des Drop-Down Menüs. Daher denke ich, dass ich irgendwo nen Denkfehler hab, aber ich grübel jetzt schon 4 Tage und komm net drauf...

Vielleicht noch jemand ne Idee
 
Guten Morgen,
wenn ich den Code recht verstehe, dann sollte doch sobald einmal die If-Bedingung wahr ist, jeder weitere Eintrag mit selected abermals markiert sein? Das sollte ja dann nicht dein gewünschtes Ergebnis bringen.

Besser:

PHP:
while ($cpu = mysql_fetch_assoc($cpuerg)) {
   if (stristr($cpu_bearb, $cpu["cpu_bezeichnung"]) != false){
      echo " <option value = ' " . $cpu["cpu_id"] . "' selected>".$cpu["cpu_bezeichnung"]."</option>\n";
   }
   echo " <option value = ' " . $cpu["cpu_id"] . "'>".$cpu["cpu_bezeichnung"]."</option>\n";
   echo $cpu_bearb;
}
echo "</select>\n";


Grüße ;)
 
Zuletzt bearbeitet:
Wenn das erste mal checked gesetzt wird, dann wird es nicht mehr gelöscht.
Dementsprechend sind mehrere Möglichkeiten selected.

Ansonsten versuche es mal mit subst_count>0. Finde ich eindeutiger wie stristr.
 

Neue Beiträge

Zurück