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

Pretraga sa vise kriterijuma Kako?

[es] :: PHP :: PHP za početnike :: Pretraga sa vise kriterijuma Kako?

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BaleReal
Menadzer
Holding

Član broj: 322417
Poruke: 4
37.19.108.*



Profil

icon Pretraga sa vise kriterijuma Kako?07.04.2014. u 17:36 - pre 121 meseci
Uspeo sam da napravim skriptu za pretragu koja se zasniva na jednom kriterijumu.
Code:

<?php

$searchTerm = trim($_GET['naziv']);
if($searchTerm == "")
{
    echo "Odaberite parametre pretrage";
    exit();
}

$host = "localhost"; 
$db = "pretraga_smestaja"; 
$pwd = ""; 
$user = "root"; 
$link = mysqli_connect($host, $user, $pwd, $db);

$query = "SELECT * FROM tabela WHERE naziv LIKE '%$searchTerm%' ";  //**KAKO DA DODAM PRETRAGU ZA KOLONU VRSTA

$results = mysqli_query($link, $query);

if(mysqli_num_rows($results) >= 1)
{
    $output = "<p class=\"rezultati\" > REZULTATI PRETRAGE  </p>" ;
    
    while($row = mysqli_fetch_array($results))
    {
        $output .= "<p class=\"line\"></p>"."<br />";
        $output .= "
<table width=\"100%\">
  <tr>
    <td rowspan=\"3\"><img src=\"http://putanja/" . $row['slika'] ."\" width=\"200\" height=\"100\" class=\"slika_prezentacije\"/></td>
    <td width=\"2%\" rowspan=\"3\">&nbsp;</td>
    <td colspan=\"3\"><div align=\"center\">". $row['naziv'] .  "</div></td>
  </tr>
  <tr>
    <td><div align=\"center\" class=\"detaljnije\">". $row['detaljnije'] ."</div></td>
    <td width=\"2%\" rowspan=\"2\">&nbsp;</td>
    <td><div align=\"center\" class=\"kontakti\">". $row['kontakti'] ."</div></td>
  </tr>
  <tr>
    <td><div align=\"center\" class=\"pitanja\">". $row['pitanja'] ."</div></td>
    <td><div align=\"center\" class=\"upit\">". $row['upit'] ."</div></td>
  </tr>
</table>
        ";
    }
    echo $output;
}
else
    echo "Nažalost nema rezultata za tražene kriterijume.Molimo Vas pokušajte ponovo. " . $searchTerm;
?>


Kako da uz pretragu naziva dodam pretragu npr. jos tri kolone iz baze.Neka te kolone npr. budu vrsta i tip.
Kako da definisem promenljive na pocetku i kako da napisem query.
Mislim da bi u produzetku quverya trebalo da dodam AND vrsta LIKE ‘%$vrsta%’ ali ne znam kako da na pocetku definisem promenljivu.
Pokusao sam kao na primeru ispod ali javlja se greska.
Code:

$vrsta= trim($_GET['vrsta']);
if($vrsta == "")
{
    echo "Odaberite parametre pretrage";
    exit();
}

Verujem da vam je ovo lako tako da je pozeljan odgovor u kodu.
Nadam se dance biti problem dva - tri reda koda.
Hvala puno unapred.
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
95.180.71.*



+257 Profil

icon Re: Pretraga sa vise kriterijuma Kako?07.04.2014. u 20:52 - pre 121 meseci
Koja greška?


Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

BaleReal
Menadzer
Holding

Član broj: 322417
Poruke: 4
77.243.20.*



Profil

icon Re: Pretraga sa vise kriterijuma Kako?07.04.2014. u 21:58 - pre 121 meseci
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in je greska u liniji if(mysqli_num_rows($results) >= 1)

Evo i ceo kod
Code:


<?php

$searchTerm = trim($_GET['naziv']);
//check whether the name parsed is empty
if($searchTerm == "")
{
    echo "Odaberite parametre pretrage";
    exit();
}
$vrsta= trim($_GET['vrsta']);
if($vrsta == "")
{
    echo "Odaberite parametre pretrage";
    exit();
}


$host = "localhost"; 
$db = "pretraga_smestaja"; 
$pwd = ""; //password
$user = "root"; 

$link = mysqli_connect($host, $user, $pwd, $db);


$query = "SELECT * FROM tabela WHERE naziv LIKE '%$searchTerm%'AND vrsta LIKE ‘%$vrsta%’";

$results = mysqli_query($link, $query);


if(mysqli_num_rows($results) >= 1) <--------- ovde pokazuje na gresku tj. u ovoj liniji
{
    $output = "<p class=\"rezultati\" > REZULTATI PRETRAGE  </p>" ;
    
    while($row = mysqli_fetch_array($results))
    {
        $output .= "<p class=\"line\"></p>"."<br />";
        $output .= "
<table width=\"100%\">
  <tr>
    <td rowspan=\"3\"><img src=\"http://putanja/" . $row['slika'] ."\" width=\"200\" height=\"100\" class=\"slika_prezentacije\"/></td>
    <td width=\"2%\" rowspan=\"3\">&nbsp;</td>
    <td colspan=\"3\"><div align=\"center\">". $row['naziv'] .  "</div></td>
  </tr>
  <tr>
    <td><div align=\"center\" class=\"detaljnije\">". $row['detaljnije'] ."</div></td>
    <td width=\"2%\" rowspan=\"2\">&nbsp;</td>
    <td><div align=\"center\" class=\"kontakti\">". $row['kontakti'] ."</div></td>
  </tr>
  <tr>
    <td><div align=\"center\" class=\"pitanja\">". $row['pitanja'] ."</div></td>
    <td><div align=\"center\" class=\"upit\">". $row['upit'] ."</div></td>
  </tr>
</table>
        ";
    }
    echo $output;
}
else
    echo "Nažalost nema rezultata za tražene kriterijume.Molimo Vas pokušajte ponovo. " . $searchTerm;
?>



 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
95.180.71.*



+257 Profil

icon Re: Pretraga sa vise kriterijuma Kako?07.04.2014. u 22:30 - pre 121 meseci
Fali ti razmak. ispred i iza AND mora biti razmak u upitu. Kod tebe nema:

Citat:
'%$searchTerm%'AND

Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

BaleReal
Menadzer
Holding

Član broj: 322417
Poruke: 4
37.19.108.*



Profil

icon Re: Pretraga sa vise kriterijuma Kako?08.04.2014. u 03:48 - pre 121 meseci
Izgleda da razmak nije jedina greska.Opet isti slucaj i opet mi javlja istu poruku o gresci.
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3445

Jabber: djoka_l


+1462 Profil

icon Re: Pretraga sa vise kriterijuma Kako?08.04.2014. u 08:11 - pre 121 meseci
Sve ti piše:
mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in

$result je Boolean vrednost zato što mysqli_query($link, $query) nije vratio rowset. A to se desilo zato što upit nije dobar, ili zato što nisi stavio treći parametar MYSQLI_USE_RESULT.

Što bi rekao naš narod RTFM!

BTW, zašto si drugi parametar okružio sa backtick umesto sa quote karakterom (da stvar bude gora, verovatno si koristio neki smart quote, pa si na početku drugog parametra stavio backtick, a na kraju obrnuti backtick).

[Ovu poruku je menjao djoka_l dana 08.04.2014. u 11:18 GMT+1]
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
95.180.71.*



+257 Profil

icon Re: Pretraga sa vise kriterijuma Kako?08.04.2014. u 18:46 - pre 121 meseci
Vid' stvarno, ima i tih "čudnih" karaktera...

A možeš i da spajaš upite ("." spaja string u php), npr. kao primer:
Code (php):
$query="select * from tabela where 1=1";
if (!empty($var1)) $query.=' and polje1 like "%'.$var1."%'";
if (!empty($var2)) $query.=' and polje2 like "%'.$var2."%'";
 
itd itd
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

[es] :: PHP :: PHP za početnike :: Pretraga sa vise kriterijuma Kako?

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

Postavi temu Odgovori

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