Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.865 pregleda

Najnovija ↓

Pretraga sa vise kriterijuma Kako? 07.04.2014. u 18:36 · pre 153 meseca #1
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.
Re: Pretraga sa vise kriterijuma Kako? 07.04.2014. u 22:58 · pre 153 meseca #3
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;
?>



Re: Pretraga sa vise kriterijuma Kako? 07.04.2014. u 23:30 · pre 153 meseca #4
Fali ti razmak. ispred i iza AND mora biti razmak u upitu. Kod tebe nema:

Citat:
'%$searchTerm%'AND
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Re: Pretraga sa vise kriterijuma Kako? 08.04.2014. u 09:11 · pre 153 meseca
izmenjeno 1 put, poslednji put djoka_l 08.04.2014. u 11:18
  1. djoka_l08.04.2014. u 11:18zapis iz teksta poruke
#6
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).
Re: Pretraga sa vise kriterijuma Kako? 08.04.2014. u 19:46 · pre 153 meseca #7
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
Potpis
Kad sve ostalo zakaže, pročitaj uputstvo...
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme