Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Filtrovanie velkeho mnozstva dat

Aktivity
Avatar
Tayson
Člen
Avatar
Tayson:1.10.2014 0:30

Zdravim
Mam databazu kde je asi 100 000 poloziek a potrebujem ich vyfiltrovat. To filtrovanie by som chcel spravit dynamicke a podla rozneho poctu stlpcov. Cize uzivatel pride a vyberie si podla mesta,jazyka alebo len mesta to filtrovanie. Da sa nejako pouzit select pre rozne kriteria alebo poznate niekto lepsi sposob kam by som sa mal uberat?dakujem

 
Odpovědět
1.10.2014 0:30
Avatar
Richard
Člen
Avatar
Richard:1.10.2014 1:29

Určitě dá, podle vstupu od uživatele (co si vybral například v těch selectech) následně v php sestavíš sql dotaz, který vybere jen to co si přeje uživatel.

Nahoru Odpovědět
1.10.2014 1:29
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Jan Lupčík
Tvůrce
Avatar
Jan Lupčík:1.10.2014 6:29

Ano, přesně tak, jak řekl Richard. :)
A pokud nevíš jak na ty dotazy, je tu skvělý tutoriál: http://www.itnetwork.cz/…-vyhledavani . :)

Nahoru Odpovědět
1.10.2014 6:29
TruckersMP vývojář
Avatar
Tayson
Člen
Avatar
Tayson:1.10.2014 9:12

Ano tie data viem vybrat aj pouzit podmienky ale chcem aby mi na konci ostalo z tych vsetkych zaznamov na vyber iba desat pretoze to dokazem vyfiltrovat .... myslel som nieco ako ze mal uzivatel na vyber rolovaci select teda lepsie povedane viacero aspon 4 a do tychto by som si vycital uz z danej tabulky vsetky jazyky ktore tam su a potom vsetky mesta a uzivatel by si rolovacim menu vybral podla akych kriterii z tychto selectov ma dane data vybrat.

 
Nahoru Odpovědět
1.10.2014 9:12
Avatar
Odpovídá na Tayson
Michal Štěpánek:1.10.2014 9:54

Vždyť sis sám odpověděl... Udělej si ComboBoxy nebo ListBoxy podle toho, z kolika sloupců chceš podmínku skládat a ty ComboBoxy nebo ListBoxy naplníš daty z jednotlivých sloupců. Problém je ale ten, že výsledek tím omezíš pouze na konkrétní jeden výběr z toho ListBoxu...

Editováno 1.10.2014 9:54
Nahoru Odpovědět
1.10.2014 9:54
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Tayson
Člen
Avatar
Odpovídá na Michal Štěpánek
Tayson:1.10.2014 10:02

No ano ale predstavoval som si to takto ze bude ma uzivatel dajme tomu tri comboboxy a si bude vyberat: prvy combo bude jazyk, druhy bude stat, treti bude ulica .... a teraz uzivatel vyberie ci chce filtrovat podla vsetkych troch alebo iba podla jedneho napriklad ... ak to odfajkne tak to co bolo odfajknute sa nacitatu z DB data kde mu to v selectoch zobrazi a dajme tomu ked vybral aj jazyk aj stat tak vyberie tie dve polozky a zostavi sa z toho select .... lenze jeden select asi nespravim aby tam raz bolo iba pre stat a potom v tom istom selecte aj stat napriklad aj jazyk ay filtrovalo??????

 
Nahoru Odpovědět
1.10.2014 10:02
Avatar
Odpovídá na Tayson
Michal Štěpánek:1.10.2014 11:13

Tak tam můžeš dát ještě CheckBoxy a podle zaškrtnutí uděláš podmínku pro výběr...
Nebo do těch comboboxů přidáš ještě jeden řádek "vše" a když zvolí tuto možnost bude v SQL příkazu, že má vybrat vše...

Editováno 1.10.2014 11:14
Nahoru Odpovědět
1.10.2014 11:13
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Tayson
Michal Štěpánek:1.10.2014 11:17

V čem se to vůbec má zobrazovat?

Nahoru Odpovědět
1.10.2014 11:17
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Richard
Člen
Avatar
Richard:1.10.2014 12:59

Takže jestli rozumím správně, tak máš selecty, kde vybíráš nějaké podmínky (hodnoty).

select1
-hodnota1
-hodnota2
-hodnota3

select2
-hodnota1
-hodnota2
-hodnota3

V php bych to třeba složil následovně (odmyslet bezpečnostní díry a prasáctví, a to že ten kód ani nefunguje, neopisovat to, pochopit myšlenku a napsat si to sám):

$where="";
$sql="select * form tabulka";
$where.=" where sloupec = $select1";
if($select2!="")$where.=" and sloupec = $select2";

Je toto to jsi chtěl?

Editováno 1.10.2014 13:01
Nahoru Odpovědět
1.10.2014 12:59
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tayson
Člen
Avatar
Odpovídá na Richard
Tayson:1.10.2014 13:11

No presne to som mal na mysli .... nevedel som ci to takto riesit alebo nie ... pretoze ked mam 10 000 zaznamov a dam si to podla statu tak uz mam len mozno 1000 a potom podla jazyka tak uz mam nejakych 500 a potom este nejaka polozka tak to viem zredukovat na nejakych 100 a to sa uz jednoducho prezera uzivatelovi ... ci ste sa stretli alebo pouzivate ine formy filtrovania dat ??? alebo teda ty Richard ?

Editováno 1.10.2014 13:11
Akceptované řešení
+20 Zkušeností
Řešení problému
 
Nahoru Odpovědět
1.10.2014 13:11
Avatar
Richard
Člen
Avatar
Odpovídá na Tayson
Richard:1.10.2014 13:47

Něco na způsob toho příkladu je určitě nejjednodušší řešení a řekl bych ideální, používám běžně :-).

Nahoru Odpovědět
1.10.2014 13:47
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.