Smarty: Ähnliche Abfrage a la "LIKE" im Template

KraZZy

Grünschnabel
Hallo,

ich kann bei MySQL in der Abfrage ja etwas machen, dass man zum Beispiel eine Spalte hat, bspw. "Titel" und ich dann per "Titel LIKE 'Hallo%'" alle Datensätze aussuche, die mit Hallo beginnen.

Ich habe nun eine Spalte in der verschiedene Werte mit Komma getrennt werden, also bspw. "4,5,2,1,9". In PHP, oder eher Smarty, möchte ich nun, dass ich beispielsweise eine Auswahlliste habe, und wenn in dieser Spalte zum Beispiel eine 2 vorkommt und der Name eines der Optionsfelder auch die 2 als value hat, dieses optionsfeld automatisch markiert wird. Also dargestellt vllt. einfach, so:

<select name="person[]" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>

Wenn jetzt also zum Beispiel in der Spalte der Datenbank eine zwei und eine vier vorkommt (das ja durch Komma getrennt), möchte ich, dass er diese beiden im select-Feld auch automatisch markiert...über {if $bla == "2"} geht das ja nicht, auch nicht wenn man es mit OR oder AND macht, da er ja immer nur den Anfang des Wertes durchsucht....geht das irgendwie!?

Hoffe das war verständlich...

Danke und Gruß
 
Hallo KraZZy

Bei Smarty kannst du glaub ich PHP Funktionen als Modifier verwenden. Nimm hier strpos, um das Vorkommen eines des Strings zu überprüfen.

Code:
{if $bla|strpos:"1"}...

Grüße Simon
 
Mhmm, vielen Dank für den Tipp.

Aber irgendwie funktioniert das leider nicht richtig, er selektiert mir nie sämtliche in der Datenbank vorhandenen Daten, sondern komischerweise immer nur ein paar davon :eek: warum auch immer :rolleyes:

Das mit den HTML-Options von Smarty habe ich mir auch angesehen, aber da komme ich beim besten Willen nicht mal annähernd so weit, wie ich es müste :-/
 
Zurück