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

PHP pretraga sa vise switch-eva

[es] :: PHP :: PHP za početnike :: PHP pretraga sa vise switch-eva

[ Pregleda: 1856 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon PHP pretraga sa vise switch-eva09.08.2010. u 14:48 - pre 166 meseci
Basic PHP programer sam i potrebno je da uradim pretragu prema nekoliko kriterijuma.Naime mislio sam da unos kriterijuma resim pomocu checkbox-ova,ali javlja mi se problem kod pojedinacnih kriterijuma kada je potrebno da se izabere jedna od tri opcije(znaci ne moze vise istovremeno).Znam da postoji opcija radiobutton-a i kombinacije sa switchom,ali me zanima da li postoji neko resenje koje mi resava sledeci problem.Imam pretragu po tipu i po vrsti(oba imaju tri opcije).Kako bih mogao da obe odvojim da moze da se bira maksimalno jedna od tri.Nisam nikad nesto radio sa switchom i php-om,pa ne znam bas da li je izvodljivo tako ili nekako drugacije.Ima li neko neku ideju laganu za predlog?
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: PHP pretraga sa vise switch-eva09.08.2010. u 14:51 - pre 166 meseci
Nauči da razlikuješ šta je HTML, a šta PHP. Validaciju je poželjno da odradiš na obe strane.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva09.08.2010. u 15:11 - pre 166 meseci
Pa zavisno od HTML resenja prikaza same aplikacije,zavisi mi i validacija u PHP-u,barem koliko ja mislim.Moje najjednostavnije resenje je da uradim if if if za svaku od zadatih value-a,ali pitanm je da li ima neko jednostavnije resenje za to.
 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: PHP pretraga sa vise switch-eva09.08.2010. u 17:16 - pre 166 meseci
Pa, ne znam da li sam dobro razumeo, ali, ako hoces da korisnik izabere samo jednu opciju, onda koristi drop down liste, ili radio dugmice.

U skripti treba da imas dve varijable : $tip (izabrana vrednost iz prve drop down liste) i $vrsta (izabrana vrednost iz druge drop down liste).

A mysql query je samo jedan: "SELECT * FROM tabela WHERE tip ='$tip' AND vrsta='$vrsta'";
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva09.08.2010. u 20:24 - pre 166 meseci
to je to,hvala.
potpuno sam smetnuo sa uma da stavim dve razlicite promenljive.
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 00:47 - pre 166 meseci
upravo sam shvatio da ovo nije kraj mojih problema.Ja imam 5 kriterijuma pretrage.2 od tih pet su u formi tipa i vrste koji su navedeni u bazi podataka.Ostalih 3 se unosi u vidu vrednosti,bilo tekstualnih,bilo brojcanih.Ja treba da vrsim pretragu na osnovu tih pet kriterijuma.ZNam kako bih to izveo,tako sto se samo jedan kriterijum uzima u obzir(if,else if uslov i to je to),ali potrebna mi je pretraga na osnovu jednog ili vise kriterijuma.Problem je sto ne poznajem dovoljno php,i prckao sam nesto malo po netu i nisam bas razumeo kako ovo izvesti.Moja jedina ideja je sa else if ovima kojih bi bilo jedno 2^5ti koliko ima kombinacija,posto bih bukvalno morao da ispitam svaku kombinaciju za polje da li je unet ili ne i onda da odradim search baze prema tome koji je kriterijum unet. Kako ovo da resim najbezbolnije.Hvala na svakom savetu.
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 08:38 - pre 166 meseci
Mozda bi mogao da resis problem prosledjivanjem niza parametara. Mozes li da das par scenaria kakav ti unos treba?
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 11:18 - pre 166 meseci
znaci imam 5 kriterijuma pretrage,a to su unosi u bazi.Npr. biram zenu za udaju.Pretraga se vrsi po boji ociju(3 opcije),boji kose(3 opcije),tezini (u granicama od-do),i godistu (u granicama od do),zemlji iz koje je. U bazi se nalazi jos podataka o toj osobi.Ja hocu da ako unesem samo jedan kriterijum,izbaci sve podatke na osnovu njega,ali da i ako unesem samo dva,izbaci sve podatke o osobi koja zadovoljava oba kriterijuma.Znaci,ja bih morao da ispitam,da li je unet,samo 1,1 i 2,ili samo 2 kriterijum,da bih na osnovu toga printovao vrednosti.S obzirom da imam 5 kriterijuma,hocu da search radi i ako je unet jedan i ako je uneto svih 5,pa ovo postaje kilometarski kod sa if else,a pe zanima da li postoji neka funckcija koja poredi unose a ne puca ako neki od njih nije unet,a radi. Kazem tek sam poceo da radim php,pa nisam bas upucen kako ovo izvesti.

Sad gledam neku varijantu sa switchevima,mozda je to najbolje resenje...
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
...148.91.adsl.dyn.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 11:29 - pre 166 meseci
a sto ne bi imao par ifova samo koji bi gradili sql upit?
Recimo

Code:

$sqlWherePart = array();

if (isset($_GET['vrednost_1']) && $_GET['vrednost_1']!=''){
  $sqlWherePart[] = ' vrednost_u_bazi = "' . $_GET['vrednost_1'] . '"';  //mozes i LIKE umesto =, zavisi sta ti treba
}


I posle imas niz koji samo joinujes sa "AND" ili pak OR sta ti treba.
Nemoras ni niz cak, mozes obican string da krenes da gradis i samo ga dodas na glavni sql upit, tako prakticno imas samo 5 ifova i potpunu kontrolu nad pretragom i uslovima.

P.S. Naravno, injection provere i to, ne ovako direktno, samo primer dajem

Ako nisi razumeo neki deo, pitaj pa da pojasnim detaljnije
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 15:03 - pre 166 meseci
Probacu,pa ti javim ako ne uspem.
 
Odgovor na temu

Nikola Milosevic
Uzice/Beograd

Član broj: 156834
Poruke: 67
*.dynamic.sbb.rs.



Profil

icon Re: PHP pretraga sa vise switch-eva10.08.2010. u 18:19 - pre 165 meseci
Da li ovo radi posao?
Code:

if ($_SESSION['user_id'])
    {
        mysql_connect("localhost","root","") or die(mysql_error());
        mysql_select_db("nekretnine");
        $datum=date( 'Y\-n\-j');
        if(array_key_exists('trazi',$_POST))
        {
        $query = "SELECT * FROM oglasi WHERE datum_isteka >='".$datum."";

            if ($_POST['tip'] > 0) {
               $query .= ' AND tip_oglasa = '.$_POST['tip'];
            }

            if ($_POST['grad'] != '') {
               $query .= ' AND grad LIKE "'.$_POST['lokacija'].'"';
            }

            if ($_POST['vrsta'] > 0) {
               $query .= ' AND vrsta_nekretnine = '.$_POST['vrsta'];
            }
            if (!empty($_POST['povrs_gornjagr']) AND !empty($_POST['povrs_donjagr']))
            {
                $query .= ' AND povrsina>= "'.$_POST['povrs_donjagr'] " ' AND korisnik_id=korisnik.id AND povrsina<='".$_POST['povrs_donjagr']."'";
            }
            if (!empty($_POST['godina_donjagr']) AND !empty($_POST['godina_gornjagr']))
            {
                $query=' AND god_izgradnje>= "'.$_POST['godina_donjagr']."' AND korisnik_id=korisnik.id AND god_izgradnje<='".$_POST['godina_gornjagr']."'";
                $result=mysql_query($upit);
            } 
            
        $result = mysql_query($query);
        while($niz=mysql_fetch_array($result))
            {
            
                echo "<tr><td>".$niz['tip_oglasa']."</td><td>".$niz['zemlja']."</td><td>".$niz['grad']."</td><td>".$niz['vrsta_nekretnine']."</td><td>".$niz['povrsina']."</td>
                <td>".$niz['spratnost']."</td><td>".$niz['broj_soba']."</td><td>".$niz['god_izgradnje']."</td><td>".$niz['cena']."</td><td>".$niz['napomena']."</td><td>".$niz['kontakt_tel']."</td></tr>";
         
            }
            echo "</table>";
        }
        if (array_key_exists('arhiva',$_POST))
        {
            $upit="SELECT * FROM oglas, korisnik WHERE datum_isteka<'".$datum."' AND korisnik_id=korisnik.id";
            $result=mysql_query($upit) or die(mysql_error());
            echo "<head> <link rel='stylesheet' type='text/css'  href='format.css' /> </head><br><br>";
            echo "<table border='1'><tr class='boja'><td>tip oglasa</td><td>zemlja</td><td>grad</td><td>vrsta nekretnine</td>
            <td>povrsina</td><td>spratnost</td><td>broj soba</td><td>god izgradnje</td><td>cena</td><td>napomena</td><td>kontakt tel</td></tr>";
            while($niz=mysql_fetch_array($result))
            {
            
                echo "<tr><td>".$niz['tip_oglasa']."</td><td>".$niz['zemlja']."</td><td>".$niz['grad']."</td><td>".$niz['vrsta_nekretnine']."</td><td>".$niz['povrsina']."</td>
                <td>".$niz['spratnost']."</td><td>".$niz['broj_soba']."</td><td>".$niz['god_izgradnje']."</td><td>".$niz['cena']."</td><td>".$niz['napomena']."</td><td>".$niz['kontakt_tel']."</td></tr>";
         
            }
            echo "</table>";
        }
        if (array_key_exists('svi_ogl',$_POST))
        {
            $upit="SELECT * FROM oglas, korisnik WHERE korisnik_id=korisnik.id";
            $result=mysql_query($upit) or die(mysql_error());
            echo "<head> <link rel='stylesheet' type='text/css'  href='format.css' /> </head><br><br>";
            echo "<table border='1'><tr class='boja'><td>tip oglasa</td><td>zemlja</td><td>grad</td><td>vrsta nekretnine</td>
            <td>povrsina</td><td>spratnost</td><td>broj soba</td><td>god izgradnje</td><td>cena</td><td>napomena</td><td>kontakt tel</td></tr>";
            while($niz=mysql_fetch_array($result))
            {
            
                echo "<tr><td>".$niz['tip_oglasa']."</td><td>".$niz['zemlja']."</td><td>".$niz['grad']."</td><td>".$niz['vrsta_nekretnine']."</td><td>".$niz['povrsina']."</td>
                <td>".$niz['spratnost']."</td><td>".$niz['broj_soba']."</td><td>".$niz['god_izgradnje']."</td><td>".$niz['cena']."</td><td>".$niz['napomena']."</td><td>".$niz['kontakt_tel']."</td></tr>";
         
            }
            echo "</table>";
        }
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: PHP pretraga sa vise switch-eva

[ Pregleda: 1856 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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