Doktore, kako ja mogu da znam da je pocetnik? Nekoliko puta se desilo da pokusas nesto da objasnis "od nule" pa ti covek odgovori "nisam ja bre glup..." zato sam mu postovao link da vidim kakav tip pretrazivanja hoce. Jednostavno, toliko je sujetnih ljudi, da moras da budes jako pazljiv da se neko ne uvredi. Na primer, neko sujetan kao ja lako popizdi kada neko kaze "retardirani"...
@krki: evo kratkog uputstva, mada mislm da ima toga ovde na forumu. Objasnicu ti onaj najosnovniji search koji se nalazi u headeru na
www.outdoor-monitoring.com
1. postavis formular:
<form action="search.php" method=post">
<input type='text' name='search_text' width=30>
<input type='submit' value='pronadji'>
</form>
2. u "search.php" stoji sledece:
if (!empty($_POST['search_text']))
{
$query_string = "SELECT * FROM moja_tabela WHERE polje_koje_trazim='".trim($_POST['search_text'])."' ";
$res = mysql_query ($query_string) or die ('Moram da promenim imena moja_table i polje_koje_trazim u prava imena polja');
... ispisivanje rezultata
}
3. Ako hoces da pretrazuje "slobodnije" odnosno sve sto sadzri trazenu rec zameni deo u $query posle "WHERE":
... " polje_koje_trazim LIKE '%".trim($_POST['search_text'])."%' ";
4. Ako hoces samo da pocinje sa trazenom reci:
... " polje_koje_trazim LIKE '".trim($_POST['search_text'])."%' ";
5. Ako hoces samo da zavrsava... to mozes sada da skapiras i sam.
6. Ako hoces da trazi u vise polja istovremeno:
..." polje_koje_trazim1 LIKE '%".trim($_POST['search_text'])."%' ".
" OR polje_koje_trazim2 LIKE '%".trim($_POST['search_text'])."%' ".
" OR polje_koje_trazim3 LIKE '%".trim($_POST['search_text'])."%' ".
" OR polje_koje_trazim4 LIKE '%".trim($_POST['search_text'])."%' ";
Napomena: trim() je samo da bi obrisao nepotrebne "space" sa pocetka i kraja stringa.
Dobra ideja je da na search formi proveravas iz JavaScript da li je prazan search_text i ne dozvolis mu submit ako je prazan...
Jos bolja ideja je da prvo pogledas koliko ima rezultata,
umesto: SELECT *
napises: SELECT COUNT(*) AS BrojRezultata
pa onda dobijes jedan jedini red sa jednom vrednoscu BrojRezultata sto predstavlja tacan onaj broj koliko ce taj upit da vrati rezultata po kriterijumu koji je korisnik zadao, pa ako je previse, onda mu skreses na nekirazuman broj tako sto na kraju dodas:
... " LIMIT 100"
ali ga obavestis da si to uradio
Najbolja ideja je da kreiras "paged navigation" a to je ono kada imas vise od recimo 30 rezultata, izbacuje sve rezultate u stranama od po 30...
Za 2-3 opcije je slicno ovome, kao i za 200-300 opcija... princip je isti, samo imas veci query.
Goran Pilipović fka bluesman