Autor | Zpráva | ||
---|---|---|---|
r0me0 Profil |
#1 · Zasláno: 2. 12. 2009, 10:07:10
Zdravím,
řeším problém s formulářem, ve kterém si pomocí selectu filtruju záznamy. Problém je v tom, že záznam(poptávka) v db může mít více okresů a ty jsou uloženy ve stylu Xid_prvniho_okresuXXid_druheho_okresuX. Pokud je tam uložen jen jeden okres, tak to není problém. Takže já si v selectu vyberu například Zlín(id=5, takže do sql dotazu se mi vloží WHERE okres = 5) a chci, aby se mi vybraly všechny poptávky, které mají v položce okres pětku. Takže třeba i záznam X3XX5XX8XX10X. ALe jak to udělat? Děkuju. |
||
Majkl578 Profil |
#2 · Zasláno: 2. 12. 2009, 10:29:55
V SQL dotazu můžeš použít IN
SELECT foo FROM bar where baz IN (1, 2, 3) $s = 'X3XX5XX8XX10X'; preg_match_all('~X([0-9]+)X~', $s, $m); var_dump($m[1]); echo 'SELECT foo FROM bar WHERE baz IN (' . implode(', ', $m[1]) . ')'; |
||
Aichi Profil |
#3 · Zasláno: 2. 12. 2009, 17:43:33
Majkl578:
myslím, že tohle nepotřebuje. r0me0 to má nejspíš uloženy prasácky v SQLku jako jeden string :) Jestli se nemýlím, pak by ti měl vyhovovat dotaz: SELECT foo FROM bar WHERE baz LIKE '%X5%' |
||
r0me0 Profil |
#4 · Zasláno: 2. 12. 2009, 23:12:55
Majkl578:
děkuji za odpověď, tohle mě napadlo také, bohužel to však neřeší můj problém. Aichi: No to je úplně geniální a přitom tak jednoduché, věděl jsem, že to nějak půjde :) Samozřejmě je to uloženo prasácky jako jeden string, což ovšem není moje práce :) Díky moc! |
||
Časová prodleva: 14 let
|
0