Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

tri SELECT forme i pretraga baze

[es] :: Web razvoj :: tri SELECT forme i pretraga baze

[ Pregleda: 1508 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pecooou
Petar Jovanovic
Nis

Član broj: 69500
Poruke: 134
*.exe-net.net.

Sajt: www.pecooou.com


Profil

icon tri SELECT forme i pretraga baze01.04.2013. u 11:43 - pre 134 meseci
Ovako, imam dva select polja:

<form method="post" action="pretraga.php" name="podatak">
<select name="usluga">
<option value="">Izaberite tip</option>
<option value="prodaja">Prodaja</option>
<option value="najam">Najam</option>
</select>

<select name="tip" >
<option value="">Izaberite tip</option>
<option value="Garsonjera">Garsonjera</option>
<option value="Jednosoban">Jednosoban</option>
<option value="Dvosoban">Dvosoban</option>
<option value="Trosoban">Trosoban</option>
</select>
<input type="submit" name="submit" value="Pretra&#382i">

Kad pretrazujem bazu po oba kriterijuma radi sve OK, ali kad stavim jedan kriterijum a drugi ne, ne radi kako treba.

Evo i SQL-a.

SELECT * FROM tabela WHERE usluga='" . mysql_real_escape_string($_POST['usluga']) . "' AND tip = '" . mysql_real_escape_string($_POST['tip]) . "'

 
Odgovor na temu

plague
Software Developer
Auckland, NZ

Član broj: 46734
Poruke: 623
*.dynamic.isp.telekom.rs.



+373 Profil

icon Re: tri SELECT forme i pretraga baze01.04.2013. u 12:35 - pre 134 meseci
Naravno da ne radi jer kada ne stavis kriterijum ne znaci da ce upit da ignorise taj deo, napraotiv, izgledace ovako:
Code (sql):

SELECT * FROM tabela WHERE usluga='' AND tip = 'neka vrednost'

I sam vidis da nece ignorisati uslugu nego ce traziti one recorde cija ja usluga prazna celija.

Jedan nacin ti je da ubacis LIKE i % svuda tako da bude usluga LIKE '%" . mysql_real_escape_string($_POST['usluga']) . "'. Kada prosledis praznu vrednost svesce se na usluga LIKE '%' sto ce vratiti sve NOT NULL vrednosti. Ovde je problem ako imas null u bazi i treba ti record sa null. Mada se i to moze zaobici zamenom NULL vrednosti sa praznim stringom. Takodje je problem ako imas vrednosti koje se zavrsavaju isto.
Primer: jednosoban stan i stan. Kada budes izbarao stan vratice ti i recorde za i za stan i za jednosoban stan.

Drugo resenje vraca i null vrednosti. Zahteva malo zezanja oko pravljenja upita.
Radi se ovako:
- ako su oba prazna ne dodajes WHERE
- ako nije izabrana usluga uopste ne dodajes string usluga=' i posle '
- ako nije izabrana usluga ILI nije izabran tip ne dodajes AND
- ako nije izabran tip ne dodajes tip = ' i posle '

Tako formirani upit prosledis na izvrsavanje.

U tvom primeru gde je za Izaberite value prazan mozes da ostavis samu konkatenaciju vrednosti jer nece ubaciti nista.

Sidetopic:
Imas pogresan dizajn baze. Svaki od ovih optiona koji imas treba biti FK, tj value ce biti ID te vrednosti u maticnoj tabeli.


[Ovu poruku je menjao plague dana 01.04.2013. u 13:54 GMT+1]
 
Odgovor na temu

pecooou
Petar Jovanovic
Nis

Član broj: 69500
Poruke: 134
*.exe-net.net.

Sajt: www.pecooou.com


Profil

icon Re: tri SELECT forme i pretraga baze01.04.2013. u 13:50 - pre 134 meseci
Hvala na odgovoru ali ovo mi ne funkcionise, izlista mi sve i pri odabiru kriterijuma.

Ne znam da li se ovo ovako radi ili u startu gresim. Gledao sam po netu u video da SELECT moze da ima samo jednu izabranu vrednost a meni treba jedno select polje da mi izabere sve.
 
Odgovor na temu

plague
Software Developer
Auckland, NZ

Član broj: 46734
Poruke: 623
*.dynamic.isp.telekom.rs.



+373 Profil

icon Re: tri SELECT forme i pretraga baze01.04.2013. u 16:47 - pre 134 meseci
Kako radi sledeci kod:

Code (sql):
SELECT * FROM tabela WHERE usluga LIKE '%" . mysql_real_escape_string($_POST['usluga']) . "' AND tip LIKE '%" . mysql_real_escape_string($_POST['tip']) . "'


Ovo bi trebao da radi pri odabiru kriterijuma.
 
Odgovor na temu

pecooou
Petar Jovanovic
Nis

Član broj: 69500
Poruke: 134
*.exe-net.net.

Sajt: www.pecooou.com


Profil

icon Re: tri SELECT forme i pretraga baze01.04.2013. u 18:03 - pre 134 meseci
Hvala druze, resio sam problem, u pravu si bio za one vrednosti kojima se drugi deo podudara ali nesto cu da smislim.

Pozdrav
 
Odgovor na temu

[es] :: Web razvoj :: tri SELECT forme i pretraga baze

[ Pregleda: 1508 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.