Autor Zpráva
Matrix
Profil *
Dobrý den, včera mi tu moc dobře poradil Nightwish (snad to dobře píšu), tak se chci zeptat ještě na jeden problém. Mám v DB vloženy id parametrů ve formátu: 2,7,8,9 a chci se zeptat jak udělat ve výpisu (while) aby se v selectu označilo všechno co je v id

Když to mám zapsný ve sloupcích, tak to dělám pomocí podmínky
<select name="neco" size="3">
<option <?php if($row_size2["id_parameter"] == $sql[id_parameter]) {echo ' selected';}?>Něco</option>
</select>


Jak to,ale udělat když to mám rozdělený jen čárkou? Děkuju


Moderátor nightfish: 1) Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).

Moderátor nightfish: 2) Nenapsal jsi můj nick správně. Na druhou stranu nejsi první a ani poslední.
nightfish
Profil
pravděpodobně nějak takhle
$pole = explode(',', $row_size2['id_parameter']);
echo "<select name='neco' size='3'>";
while ($sql = mysql_fetch_array($vysledek)) {
  echo "<option";
  if (in_array($sql['id_parameter'], $pole)) echo ' selected';
  echo ">Něco</option>";
}
echo "</select>";


EDIT: každopádně ukládání dat ve formátu "2,7,8,9" je špatné
Matrix
Profil *
Proč je to špatně? Šetří to místo a dá se stím víc pracovat než když by jsem to napsal slovy. Nevidím žádné negativa. Jsem, ale amatér a co si nepřečtu atd., tak nevím. Všechno maká jak má :- sice je to všechno náročnější a složitější dotazy, ale efektní to je. Potom to chci navázat na vyhledávač. Budou stím nějaké problémy? Děkuju ještě jednou moc za včerejšek i za dnešek.
nightfish
Profil
Matrix:
Proč je to špatně? Šetří to místo a dá se stím víc pracovat než když by jsem to napsal slovy. Nevidím žádné negativa
protože tohle je vazba typu 1:N (jednomu záznamu nějaké tabulky odpovídá N jiných záznamů) a to se řeší pomocí další tabulky

Potom to chci navázat na vyhledávač. Budou stím nějaké problémy?
jako třeba vyhledat všechno zboží, které obsahuje parametr 7? ano, budou s tím problémy - onanistickou syntaxí počínaje, nepoužitím indexů (a tedy pomalostí) konče

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0