php search i stranica pogodaka problem

php search i stranica pogodaka problem

offline
  • Pridružio: 30 Avg 2008
  • Poruke: 91

Napisano: 06 Nov 2012 19:12

Pozdrav,

Kako mogu podesiti stranicu sa rezultatima pretrage, imam npr polje cena, e sad kada ukucam tačnu cenu onda radi ali ja želim da bude cena do 10.000 npr, i da mi prikaže sva vozila koja su do 10.000

$maxRows_search = 5; $pageNum_search = 0; if (isset($_GET['pageNum_search'])) {   $pageNum_search = $_GET['pageNum_search']; } $startRow_search = $pageNum_search * $maxRows_search; mysql_select_db($database_osszekotes, $osszekotes); $expected = array(   'kategorija' => 'text',                'marka' => 'text',                'model' => 'text',                'godiste' => 'int',                'cijena' => 'int',                               'ABS' => 'text')                ; $query_search = "SELECT * FROM products"; // Set a flag to indicate whether the query has a WHERE clause $where = false; // Loop through the associatiave array of expected search values foreach ($expected as $var => $type) {  if (isset($_GET[$var])) {     $value = trim(urldecode($_GET[$var]));     if (!empty($value)) {       // Check if the value begins with > or <       // If so, use it as the operator, and extract the value       if ($value[0] == '>' || $value[0] == '<') {         $operator = $value[0];         $value = ltrim(substr($value, 1));       } elseif (strtolower($type) != 'like') {         $operator = '=';       }       // Check if the WHERE clause has been added yet       if ($where) {         $query_search .= ' AND ';       } else {         $query_search .= ' WHERE ';         $where = true;       }       // Build the SQL query using the right operator and data type       $type = strtolower($type);       switch($type) {         case 'like':           $query_search .= "`$var` LIKE " . GetSQLValueString('%' . $value . '%', "text");           break;                         case 'int':         case 'double':         case 'date':           $query_search .= "`$var` $operator " . GetSQLValueString($value, "$type");           break;         default:         $query_search .= "`$var` = " . GetSQLValueString($value, "$type");       }     }   } } $query_limit_search = sprintf("%s LIMIT %d, %d", $query_search, $startRow_search, $maxRows_search);

sve mi radi osim kada želim ubaciti u where cena < od 10.000 npr

mislim da je ovaj deo coda za to

 if (!empty($value)) {       // Check if the value begins with > or <       // If so, use it as the operator, and extract the value       if ($value[0] == '>' || $value[0] == '<') {         $operator = $value[0];         $value = ltrim(substr($value, 1));

Dopuna: 06 Nov 2012 19:18

Ako neko zna neki tutorial za advanced search može i to

Dopuna: 06 Nov 2012 19:31

Da li treba prvo da definišem maximum i minimum price, taj deo me najviše interesuje

Dopuna: 07 Nov 2012 16:12

Vidim da sam pogrešio interesuje me da li mogu da ubacim u svoj code ovako nešto, nažalost array mi je slaba tačka pa bi bio zahvalan za malo pomoći ako neko može
//if user enters 0 in both price fields, set both prices to nothing if($pricemin = 0 && $pricemax = 0){  $pricemin = '';     $pricemax = ''; } //if user enters 0 in pricemin and nothing in pricemax, set pricemin to nothing if($pricemin = 0 && $pricemax = ''){  $pricemin = ''; } //if user enters a number in pricemin and nothing in pricemax, set pricemax to highest value if($pricemin > 0 && $pricemax = ''){  $pricemax = '99999'; } //if user enters 0 in pricemax and nothing in pricemin, set pricemax to nothing if($pricemin = '' && $pricemax = 0){  $pricemax = ''; } //if user enters 0 in pricemax and nothing in pricemin, set pricemin to nothing if($pricemin = '' && ($pricemax != '' && $pricemax > 0)){  $pricemin = 0; }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Ti kad pretrazujes po vrednosti, pretpostavljam da ti je vrednost neki broj u bazi, int, double i slicno, koristis poredjenje < , <= , = , > ili >=
Stavi polja 'od' i 'do' i samo uzimaj te vrednosti, nemoj da ti korisnik kuca to u polje, bar sam ja tako skontao na osnovu tvog koda koji sam na brzinu pogledao.

Mozes da ubacis i onaj deo koda, da ga iskombinujes sa svojim. Ima mnogo nacina da to urais.

Najjednostavnije ti je imas oako:
Cena od [textbox]
cena do [textbox]

na stranici uhvatis te vrednosti
$cenaOd , $cenaDo

i na upit nadovezes uslov AND cena < $cenaDo , ako je $cenaDo > 0 , u suprotnom nista ne radis, ne treba ti uslov....



offline
  • Pridružio: 30 Avg 2008
  • Poruke: 91

E sad da ne započinjem novu temu, hvala Nikola poslušao sam tvoj savet i još malo googlanja rešilo je moj problem. Jedino se još mučim gde i kako da ubacim order by u query

offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Na kraju upita, znaci
select nesto from nesto where neki_uslovi ORDER BY neka_kolona

offline
  • Pridružio: 30 Avg 2008
  • Poruke: 91

Napisano: 27 Nov 2012 14:38

taj deo znam, to mi nije problem, nego mi je problem gde to da ubacim konkretno u ovom query-ju, verovatno ide posle loopa "// Loop through the associatiave array of expected search values ", stvara mi probleme

select * from tabela where nesto='nesto' order by id

ovaj deo nije problem, nego mi je array nepoznanica

Dopuna: 27 Nov 2012 17:46

našao sam rešenje, ali hvala na pomoći

samo sam dodao posle loopa

$query_search .= ' ORDER BY id ASC';

Ko je trenutno na forumu
 

Ukupno su 600 korisnika na forumu :: 78 registrovanih, 10 sakrivenih i 512 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 4. Ozrenska, A.R.Chafee.Jr., Adaminho1985, Ares12356, Asteker, Avalon015, Bane san, Belac91, Ben Roj, Betty25, bobomicek, Botovac, C-Gun, cifra, Citalac, Clouseau, Dambi, Dannyboy, Djolek, dolinalima, drpera, Dvojac005, Dzigy, eagle.rs, Electron, EVIDENTICAR, geo.dule, Goksi95, iceburn, ikan, istina, Jakonjveliki, jalos, Joja, K-1A, Kalu209, Kordon, Krusarac, Kubovac, M74AB3, Magarac, Marko Marković, MarkoDzimi, mat, miki kv, milenko crazy north, Milos1389, Milovan Dinic, mushroom, mustangkg, nebkv, nemkea71, niksa517, Otto Grunf, Panter, panzermilan45, pein, pfc74, Pilence, PlayerOne, pobeda, Prečanin30, royst33, sap, septembar, Shinobi, SR-3m, stankolich, Steeeefan, Tafocus, tanakadzo, Topaz9, UAV operator, VanZan, VaRvArI 85, Veless, VJ, wizzardone