cautare dupa mai multe criterii

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

xbogdan
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Apr 16, 2012 6:50 pm

cautare dupa mai multe criterii

Mesajde xbogdan » Mar Mai 01, 2012 2:22 pm

Salut! Am nevoie de un cod php cu care sa caut intr-o baza de date dupa mai multe criterii de ex: am 3 campuri : nume; oras; judet si as vrea sa caut dupa oras numai ... asta e simplu dar daca vreau si nume si oras sau nume si judet sau toate 3 sau alte posibilitati (gen mai mult criterii care ar implica mult mai multde combinatii) cum fac ?Multumesc



EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Mar Mai 01, 2012 2:38 pm

Cod: Selectaţi tot

SELECT * FROM `tabel` WHERE `nume` LIKE '%nume%' OR `oras` LIKE %$oras%'' OR `judet` '%$judet%'
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.

Imagine
[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]

xbogdan
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Apr 16, 2012 6:50 pm

Mesajde xbogdan » Mar Mai 01, 2012 2:44 pm

am facut ceva de genul

Cod: Selectaţi tot

if(isset($_POST['nume_licitatie'],$_POST['judet'], $_POST['oras']) && ( !empty($_POST['nume_licitatie']) || !empty($_POST['judet']) || !empty($_POST['oras'])))
{
   $query = "SELECT * FROM licitatii WHERE nume LIKE '%".$_POST['nume_licitatie']."%' OR judet LIKE '%".$_POST['judet']."%' OR oras LIKE '%".$_POST['oras']."%' ";


unde gresesc?

EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Mar Mai 01, 2012 2:51 pm

Daca ai spune si ce erroare iti da...
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.



Imagine

[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]

xbogdan
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Apr 16, 2012 6:50 pm

Mesajde xbogdan » Mar Mai 01, 2012 2:53 pm

nu imi da nicio eroare doar ca nu imi gaseste exact ce caut

xbogdan
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Apr 16, 2012 6:50 pm

Mesajde xbogdan » Mar Mai 01, 2012 2:56 pm

imi afiseaza tot ce e in baza de date

EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Mar Mai 01, 2012 2:59 pm

Incearca sa stergii % din fata variabilei (care o preiei cu $_POST), sau de dupa variabila, ca sa ai:

Cod: Selectaţi tot


%$variabila



sau

Cod: Selectaţi tot

$variabila%


Daca nu merge nici asa, poti sa spui ce anume vrei sa-ti afiseze?
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.



Imagine

[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]

xbogdan
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Apr 16, 2012 6:50 pm

Mesajde xbogdan » Mar Mai 01, 2012 3:10 pm

nu merge.

Cod: Selectaţi tot

<form action="admin.php" method="post" id="searchForm">
                  <table cellspacing="15">
                     <tr>
                        <td align="right">Nume licitatie</td>
                        <td><input type="text" name="nume_licitatie" /></td>
                     </tr>
                     <tr>
                        <td align="right">Judet</td>
                        <td><input type="text" name="judet" /></td>
                     </tr>
                     <tr>
                        <td align="right">Oras</td>
                        <td><input type="text" name="oras" /></td>
                     </tr>
                  </table>
                  <button type="submit" id="sendBtn" >Cauta</button>
               </form>


+ codul php de mai sus si vreau sa caut dupa nume deci celalate 2 campuri le las goale sau vreau dupa nume si judet si campul cu oras il las gol si tot asa. Vreau sa-mi afiseze ce gaseste in baza de date care corespunde criteriilor ex: nume: masina; oras: bucuresti afiseaza licitatia cu numele masina din orasul bucuresti, chiar daca mai sunt si in alte orase licitatii cu numele ala.

EoKlaus
Average Member
Mesaje: 133
Membru din: Mie Apr 20, 2011 3:11 pm
Localitate: Grecia

Mesajde EoKlaus » Mar Mai 01, 2012 4:50 pm

Then, trebuie AND in loc de OR.

Cod: Selectaţi tot

if(isset($_POST['nume_licitatie'],$_POST['judet'], $_POST['oras']) && ( !empty($_POST['nume_licitatie']) || !empty($_POST['judet']) || !empty($_POST['oras'])))
{
   $query = "SELECT * FROM licitatii WHERE nume LIKE '%".$_POST['nume_licitatie']."%' AND judet LIKE '%".$_POST['judet']."%' AND oras LIKE '%".$_POST['oras']."%' ";
Copilaria nu este de la nastere pana la o anumita varsta, iar la o anumita varsta copilul a crescut si ia toate lucrurile copilaresti si le pune la o parte. Copilaria este regatul unde nu moare nimeni.



Imagine

[img=http://klaus-blog.hi2.ro/fisiere/imagine.php]


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 35 vizitatori