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

Problemi sa pretragom

[es] :: PHP :: Problemi sa pretragom

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nikol@c
tu i tamo

Član broj: 73969
Poruke: 339
81.93.74.*



+4 Profil

icon Problemi sa pretragom16.01.2008. u 10:05 - pre 139 meseci
Pozdrav, nisam siguran da li sam temu trebao staviti ovdje ili u mysql forum, pa se izvinjavam na mogucoj gresci.

Napravio sam pretragu na sajtu, nesto slicno kao na sajtu: http://www.punmiris.com/parfemi/

Sve radi ok ali se javlja jedan mali problem. Kada jednu od stavki iz pretrage ostavim praznu, izvjestaj mi javlja da nema rezultata. Logicno je da to izbaci jer ni jedna stavka nije prazna, pa pretpostavljam da je potreban neki if uslov za prazno polje. Ili ima neki jednostavniji nacin.

Pozdrav, Nikola

...ko se jednom o mlijeko opece taj i u jogurt duva...
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
*.adsl-1.sezampro.yu.

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: Problemi sa pretragom16.01.2008. u 10:24 - pre 139 meseci
Jedan od načina je da u zavisnosti od toga šta je popunjeno praviš query.
Pomoglo bi kada bi postavio source tog dela ovde pa onda može i neka ko nkretnija pomoć.
Powered by Slackware 13
 
Odgovor na temu

nikol@c
tu i tamo

Član broj: 73969
Poruke: 339
81.93.74.*



+4 Profil

icon Re: Problemi sa pretragom16.01.2008. u 10:32 - pre 139 meseci
Evo upit:

Code:

$sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi WHERE komitent='$komitent' and username='$username' and status='$status' order by clanak_id";
$result=MySQL_query($sql);



...ko se jednom o mlijeko opece taj i u jogurt duva...
 
Odgovor na temu

nikol@c
tu i tamo

Član broj: 73969
Poruke: 339
81.93.74.*



+4 Profil

icon Re: Problemi sa pretragom16.01.2008. u 13:33 - pre 139 meseci
Sredio sam ovo na slijedeci nacin.

kreirao sam if uslove za svaku stavku:

Code:


// SVA POLJA POPUNJENA
if ($komitent!='' && $username!='' && $status!='')
    {
    $sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi WHERE komitent='$komitent' and username='$username' and status='$status' order by clanak_id";
$result=MySQL_query($sql);
    }

// SVA POLJA PRAZNA
if ($komitent=='' && $username=='' && $status=='')
    {
    $sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi order by clanak_id";
$result=MySQL_query($sql);
    }
... itd


Sve je uradjeno na principu da li je polje u pretrazi prazno ili nije.
Nadam se da ce nekome biti od koristi, pa sam iz tog razloga ovo i napisao.

Ipak interesuje me postoji li neko elegantnije rjesenje???

Pozdrav, Nikola


...ko se jednom o mlijeko opece taj i u jogurt duva...
 
Odgovor na temu

miljakovic
Miljakovic Djordje
Kraljevo

Član broj: 122900
Poruke: 36
*.dynamic.adsl.itsisp.net.



+1 Profil

icon Re: Problemi sa pretragom16.01.2008. u 22:44 - pre 139 meseci
Ja sam ti jos malo zakomplikovao ali mislim da su ovde sve mogucnosti uzete u obzir.

Code:
ok=0;//pokazivac da li je nesto vec dodato upitu za pretragu =0 ako nije =1 ako jeste


$sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi";

if($komitent!='') {

$sql=$sql + "WHERE komitent='$komitent'"; //dodaje sql upitu jos jedan deo, moze i preko naredbi za stringove
ok++;

}


if($username!='')
{

if (ok==1) $sql=$sql + " and username='$username'";
else 
{
$sql=$sql + "WHERE username='$username'";
ok++;
}

if($komitent!='') 
{

if (ok==1) $sql=$sql + " and komitent='$komitent'";
else 
{
$sql=$sql + "WHERE komitent='$komitent'";

}

$sql=$sql + " order by clanak_id";

Probaj, mozda radi.


[Ovu poruku je menjao Nemanja Avramović dana 17.01.2008. u 10:19 GMT+1]
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.ptt.yu.



+254 Profil

icon Re: Problemi sa pretragom16.01.2008. u 23:03 - pre 139 meseci
Code:

$sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi where 1=1";
if($komitent!='') $sql.=" AND komitent='$komitent'";
if($username!='') $sql.=" AND username='$username'";
if($status!='') $sql.="and status='$status'";
$sql.= " order by clanak_id";
...

Naravno, ovo sad radi za bilo koji od uslova upisan. Ako si hteo samo za sva polja, onda sve u jednom if-u:
Code:

$sql="select date_format(datum,'%d. %m. %Y.') as datum, clanak, komitent, username, sredstvo, status, cijena, clanak_id from nalozi";
if ($komitent!='' && $username!='' && $status!='') $sql.=" WHERE komitent='$komitent' and username='$username' and status='$status'";
$sql.= " order by clanak_id";
...

Cekamo jos drugih predloga... ;)

Edit: ispravio sam jedan zaboravljeni " i u drugom primeru umesto AND ide WHERE (jbg, ko radi, taj i grOsi :) )

[Ovu poruku je menjao Jbyn4e dana 17.01.2008. u 08:49 GMT+1]
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

centaur
Beograd

Član broj: 65691
Poruke: 407
*.ikomline.net.

ICQ: 249678363
Sajt: www.pavko.net


+24 Profil

icon Re: Problemi sa pretragom16.01.2008. u 23:24 - pre 139 meseci
Najprirodnije je kao što je napisao @Jbyn4e u prvom primeru.
Ja bih jedino koristion funkciju empty() umesto poredjenja vrednosti promenjive sa praznim stringom.

[Ovu poruku je menjao centaur dana 17.01.2008. u 00:34 GMT+1]
Powered by Slackware 13
 
Odgovor na temu

[es] :: PHP :: Problemi sa pretragom

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

Postavi temu Odgovori

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