[ BaleReal @ 07.04.2014. 17:36 ] @
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.
[ Jbyn4e @ 07.04.2014. 20:52 ] @
Koja greška?

[ BaleReal @ 07.04.2014. 21:58 ] @
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;
?>



[ Jbyn4e @ 07.04.2014. 22:30 ] @
Fali ti razmak. ispred i iza AND mora biti razmak u upitu. Kod tebe nema:

Citat:
'%$searchTerm%'AND
[ BaleReal @ 08.04.2014. 03:48 ] @
Izgleda da razmak nije jedina greska.Opet isti slucaj i opet mi javlja istu poruku o gresci.
[ djoka_l @ 08.04.2014. 08:11 ] @
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]
[ Jbyn4e @ 08.04.2014. 18:46 ] @
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