Autor | Zpráva | ||
---|---|---|---|
Andrej.B Profil |
#1 · Zasláno: 24. 12. 2018, 00:22:02
Zdravim,
mam formular, kde vyberam podla id_druh_material. Pokial chcem vybrat len podla jedneho alebo vsetkych, tak mi to ide ako potrebujem /SELECT - OPTION/... <div class="form-group"> <form method="get" action="/statistiky/sklad/?id_druh_material="> <div class="form-row"> <div class="col-2"> <select name="id_druh_material" class="custom-select"> <option value="">Vsetky</option> <option value="1">pena</option> <option value="2">koza</option> <option value="3">tkanina</option> <option value="4">uplet</option> <option value="5">podšívka</option> </select> </div> <div class="col-2"><input type="submit" class="form-control" value="vyhladat" title=""></form></div> </div> </div> Rad by som si to prerobil do checkboxu... Formular sa mi generuje podla vyberu z DB... Teraz tam je 5 poloziek. Takto to mam teraz a vybera ok. Adresa na vsetko je /statistiky/sklad/?id_druh_material= Adresa na 1 je /statistiky/sklad/?id_druh_material=1 <?php if (empty($_GET['id_druh_material'])) { $clause_where = ''; } else { $clause_where = " AND sp.id_druh_material = ".$_GET['id_druh_material'].""; } $result = $conn->query(" SELECT sp.*, sm.nazov_material, dm.nazov_druh_material FROM sklad_polozka sp JOIN sklad_material sm ON sm.id_material = sp.id_material JOIN druh_material dm ON dm.id_druh_material = sp.id_druh_material WHERE YEAR(FROM_UNIXTIME(datum_sklad_polozka)) = 2018 $clause_where GROUP BY sp.id_material ORDER BY sp.id_druh_material ASC "); ?> Rad by som si vygeneroval checkboxy /to viem/, ktore mozem zaskrtavat podla toho co chcem vsetko potom vyselectovat z DB... Ako by vlastne vypadal ten dotaz do DB, ka by som mal zaskrtnute napriklad pena, tkanina, koza? Ako by som mal vlastne riesit dynamicky podla zaskrtnutia to: $clause_where = " AND sp.id_druh_material = ".$_GET['id_druh_material'].""; $clause_where = " AND sp.id_druh_material = 1 OR sp.id_druh_material = 2 or sp.id_druh_material = 3"; Diky a pekne Vianoce :) |
||
Keeehi Profil |
#2 · Zasláno: 24. 12. 2018, 10:06:07
Andrej.B:
„Rad by som si vygeneroval checkboxy /to viem/,“ V první řadě bude potřeba, aby měly trochu jiné jméno. name="id_druh_material[]" if(!empty($_GET['id_druh_material']) and is_array($_GET['id_druh_material'])) { if(!empty($clause_where)) { $clause_where .= ' AND'; } $clause_where .= ' (sp.id_druh_material = ' . implode(' OR sp.id_druh_material = ', $_GET['id_druh_material']) . ')'; } |
||
Andrej.B Profil |
#3 · Zasláno: 24. 12. 2018, 13:18:11
Keeehi:
dakujem... upravil som si to takto: if(!empty($clause_where)) { // $clause_where .= ' AND'; } $clause_where .= ' AND sp.id_druh_material = ' . implode(' OR sp.id_druh_material = ', $_GET['id_druh_material']) . ''; } nakolko mi tam tie zatvorky nefungovali, musel by som to urobit nejako inak asi este v tom selecte: echo $clause_where; mi dava AND sp.id_druh_material = 2 OR sp.id_druh_material = 3 davalo (AND sp.id_druh_material = 2 OR sp.id_druh_material = 3) co mi vyhadzovalo chybu WHERE YEAR(FROM_UNIXTIME(datum_sklad_polozka)) = 2018 (AND sp.id_druh_material = 2 OR sp.id_druh_material = 3) vs. WHERE YEAR(FROM_UNIXTIME(datum_sklad_polozka)) = 2018 AND sp.id_druh_material = 2 OR sp.id_druh_material = 3 |
||
Kcko Profil |
#4 · Zasláno: 24. 12. 2018, 13:35:01
Andrej.B:
WHERE YEAR(FROM_UNIXTIME(datum_sklad_polozka)) = 2018 AND (sp.id_druh_material = 2 OR sp.id_druh_material = 3) |
||
Andrej.B Profil |
#5 · Zasláno: 24. 12. 2018, 13:48:51
Pokial tam nic nedam v defaulte mi vybera všetko, a az potom si vyberam z checkboxov... Funguje ako ma...
|
||
Andrej.B Profil |
#6 · Zasláno: 24. 12. 2018, 15:46:04
a nejake to info ako to vypada :)
vsetko... ![]() a vyber ![]() |
||
Časová prodleva: 5 let
|
0