Autor | Zpráva | ||
---|---|---|---|
Kolemjdouci Profil * |
#1 · Zasláno: 27. 6. 2013, 08:07:34
Zdravím,
řeším následující věc. Chci vypisovat do "radio selectu" (něco jako select, ale lépe graficky zpracovaný) položky pro "option", které jsou pouze v databázi a to tak, že jednou. Mám 4 typy materiálu, k výrobkům sázím ceny s různým materiálem, rozměry atd a na webu si to filtruji. Nechci, ale filtrovat něčím, co v databázi vůbec není. Jak bych měl zapsat něco ve smyslu: "pokud je v databázi alespoň jednou, vypiš 1x input ..." ... a to tak, se 4 možnými typy (číslo 1-4)? Výsledek by měl být 4 inputy a méně, podle toho jestli existuje cena s daným materiálem v db. Vůbec nevím jak do toho. Děkuji za rady. K. |
||
Tori Profil |
Seznam materiálů máte v DB a čtete odtamtud? Pak by šlo omezení přidat tam:
SELECT m.id, m.nazev FROM materialy m INNER JOIN (SELECT DISTINCT id_materialu FROM cenik WHERE nejake-dalsi-omezeni) pm ON pm.id_materialu = m.id ORDER BY nazev SELECT m.id, m.nazev FROM materialy m WHERE EXISTS (SELECT * FROM cenik c WHERE c.id_materialu = m.id AND nejake-dalsi-omezeni) ORDER BY nazev |
||
Kolemjdouci Profil * |
#3 · Zasláno: 27. 6. 2013, 08:35:42
Díky,
vyzkouším. Materiály jsou v db jako číslo v tabulce ceníku, v jiné tabulce nejsou, dále v php je to jen array. |
||
Tori Profil |
#4 · Zasláno: 27. 6. 2013, 08:45:00
Kolemjdouci:
Tak jen ten SELECT DISTINCT a v PHP podle ID doplnit názvy. Ale asi by bylo konzistentnější je mít také uložené v DB (i kdybyste s nimi vůbec nepracoval), aby se při případné záloze DB a ztrátě skriptu vědělo co je co. |
||
Časová prodleva: 11 let
|
0