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

koji select iskaz koristiti kada imam vise promjenjivih

[es] :: PHP :: koji select iskaz koristiti kada imam vise promjenjivih

[ Pregleda: 3335 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stomic_50
BN

Član broj: 44056
Poruke: 37
*.teol.net.



Profil

icon koji select iskaz koristiti kada imam vise promjenjivih11.04.2005. u 14:42 - pre 231 meseci
interesuje me nesto poput pretrage auta na mobile.de

znaci da mi select vrati informacije na osnovu promjenjivih koje sam unio.

npr. imam proizvodjaca, godiste, boju, cijenu

imam problema da prikazem recimo sva auta marke bmw crne boje.

meni u tom slucaju daje sve bmw-ove i sva auta crne boje nebitno da li je bmw ili nesto drugo...

malo sam se izgubio sa AND-om i OR-om tako da mi prikazuje vise nego sto bi trebalo ili nista.

kako odraditi select iskaz da mi prikaze ono sto je korisnik izabrao, a da pri tome ne mora ispuniti sva polja vec moze da izabere jedno, dva ili vise kriterijuma. bas kao mobile.de

 
Odgovor na temu

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.ptt.yu.

Sajt: bocc.io


+771 Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih11.04.2005. u 15:37 - pre 231 meseci
Najlakse ti je da prvo kreiras "prazan" query gde ces samo da uvedes WHERE klauzu koja uvek vraca TRUE. Onda samo dodajes jedan po jedan zahtev shodno inputu korisnika.
Primera radi:
Code:

$query = "Select * FROM tblAutomobili WHERE 1=1";
// sad dodajes prave parametre
if (isset($_POST['boja']))
     $query .= "AND boja = '$_POST['boja']'";
if (isset($_POST['marka']))
     $query .= "AND marka = '$_POST['marka']'";
// i tako do besvesti

Ovo je uproscen primer, obzirom da se koristi samo jedna tabela. U realnosti ces sigurno imati vise relacionih tabela, makar zbog normalizacije baze, pa onda dodatne provere POST parametara pre uvodjenja u query (stripslashes, etc) zbog SQL Injection prevencije. Ali princip je isti, osim sto ces dodavati verovatno i JOIN-e, a onda i GROUP BY i sl...
Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

stomic_50
BN

Član broj: 44056
Poruke: 37
*.teol.net.



Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih12.04.2005. u 08:20 - pre 231 meseci
ok zvuci vrlo jednostavno.
ali sad mi se pojavljuje sledeci problem.
kod koji si napisao ne radi, tj. javlja greske, a kada ga napisem na ovaj dole nacin onda radi ali nikada ne daje nikakve rezultate iako prethodno ispise promjenjive sa print $_POST['marka']; , sto znaci da su promjenjive ok.


Code:
print $_POST['marka'];
print $_POST['opis1'];
print $_POST['opis2'];


$result = "select * FROM auta where 1=1";
     
if (isset($_POST['marka']))
     $result .= "AND marka =" .$_POST['marka'];
if (isset($_POST['opis1']))
     $result .= "AND opis1 =" .$_POST['opis1'];
if (isset($_POST['opis2']))
     $result .= "AND opis2 =" .$_POST['opis2'];


cak i kada stavim samo:

$result = "select * FROM auta where marka = $marka";
ne radi dok ne stavim mysql_query
mysql_query($result = "select * FROM auta where marka = $marka");

gdje grijesim?

ostatak koda ide ovako i on radi ok
Code:
while ($story = mysql_fetch_array($result)) 
{
 

 
  print '<tr><td width="60">';
   print '<font size="2">';
  print $story['marka'];
  print '</font>';
 
Odgovor na temu

boccio
Boris Krstović
Spoonlabs.com
nbgd

Član broj: 7594
Poruke: 2458
*.ptt.yu.

Sajt: bocc.io


+771 Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih12.04.2005. u 09:05 - pre 231 meseci
Piece of advice: kad ti query ne radi, ti ga lepo echo-ujes pa vidis sta ne valja. Ovako napamet nikad neces naci gresku, zar ne?

U ovom primeru, evo sta mi je odmah zapelo za oko:
Code:

$result = "select * FROM auta where 1=1";
     
if (isset($_POST['marka']))
     $result .= "AND marka =" .$_POST['marka'];

Vidis, kad spojis ova dva stringa, ako se ne varam dobijes ovo: (predpostavka da je $_POST['marka'] = 'bmw')
Code:

select * FROM auta where 1=1AND marka =bmw

Da li vidis gde je greska? OK, jeste, ja sam to napisao, a ti si samo cut'n'pasteovao, ali ipak...pogledas malo i sam sta se desava...

Jeff, one day you’ll understand that it’s harder to be kind than clever.
 
Odgovor na temu

stomic_50
BN

Član broj: 44056
Poruke: 37
*.teol.net.



Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih12.04.2005. u 11:58 - pre 231 meseci
kasnije sam primjetio i to ali nije do toga. obradovao sam se kad sam vidio ali i dalje ne radi. :(
probao sam sve zivo, ne samo cut'n'paste, ali netje
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih12.04.2005. u 12:09 - pre 231 meseci
Posto ti ovaj savet..

Citat:

Piece of advice: kad ti query ne radi, ti ga lepo echo-ujes pa vidis sta ne valja.


...nije bio dovoljan evo ti jos nekih:

Kada echoujes generisani SQL upit, onda ka iskopiraj i prebaci u neki SQL alat povezan na tvoju bazu i probaj tamo da ga izvrsis. Alat ce ti dati neki koliko-toliko smislen opis greske koji ce ti pomoci da utvrdis sta je problem. Uz to je preporucljivo da poznajes SQL sintaksu.

Sigurno neces resiti problem tako sto ces ovde da ponavljas da ti kod ne radi. Niko ovde nije vidovit pa da pogadja zbog cega to tebi ne radi.

Nekada pomaze i da ceo kod napises ponovo. Neke sitne sintaksne greske umeju da budu tako neuocljive da se izgube sati u potrazi.

S druge strane, covek ti je rekao sve sto ti treba, i cak ti dao primer (koji ne mora da radi da bi bilo jasno kako treba da radis), pa zapni malo i uradi to sam.

To sto tebe mucije banalnost i ja recimomogu da nagadjam da je stvar u navodnicima. Takve probleme moras sam da resavas.
 
Odgovor na temu

stomic_50
BN

Član broj: 44056
Poruke: 37
*.teol.net.



Profil

icon Re: koji select iskaz koristiti kada imam vise promjenjivih12.04.2005. u 12:38 - pre 231 meseci
rijesio sam problem

svo to sto ste rekli ste upravu i to i radim. znaci sa echo i sa sql alatkama kao mysql front npr.
jos mi samo fali alex da kaze "procitaj dokumentaciju" pa da kompletiramo instrukcije. :)

problem nije bio u tackicama, zarezima i ostalim glupostima jer sam kod prekucao 16 puta. sve dok na kraju nisam dodao :

$result = mysql_query($result);

sada radi.

hvala boccio
 
Odgovor na temu

[es] :: PHP :: koji select iskaz koristiti kada imam vise promjenjivih

[ Pregleda: 3335 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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