Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Skrypty obsługi baz danych _ [SKRYPT] Wyszukiwanie w bazie po nazwie i cenie

Napisany przez: tenloginjestzajety 20.01.2015, 20:39:50

Witam przedstawiam gotowe rozwiązanie wyszukiwania po nazwie w przedziale cenowym. Napisany w dużej mierze dzięki użytkownikom forum, dlatego wypada się podzielić.

PLIK SEARCH.php

  1. <?php
  2. http://www.php.net/header('Location: ./1_'.$_POST['szukaj'].'.'.$_POST['min'].'.'.$_POST['max'].'.'.$_POST['sort']);
  3. ?>



Pobranie danych z url:
  1. $end = http://www.php.net/substr($_SERVER['REQUEST_URI'],(http://www.php.net/strrpos($_SERVER['REQUEST_URI'],'/')+1));
  2. $end2 = http://www.php.net/explode('.',http://www.php.net/urldecode($end));
  3. $szukaj = http://www.php.net/preg_replace('/[0-9]+\_/', '', http://www.php.net/strip_tags($end2[0]));
  4. $min = http://www.php.net/strip_tags($end2[1]);
  5. $max = http://www.php.net/strip_tags($end2[2]);
  6. $sort = http://www.php.net/strip_tags($end2[3]);


Formularz:
  1. <form action="SEARCH.php" method="post">
  2. <div>
  3. <br />
  4. <span class="dodanodata">Czego szukasz?</span>
  5. <input type="text" class="tytul" style="width:250px;" name="szukaj" value="<?php http://www.php.net/echo $szukaj; ?>" /> <span class="dodanodata">od</span>
  6. <input type="text" class="tytul" name="min" value="<?php http://www.php.net/echo $min; ?>" style="width:50px;" onkeyup="this.value=this.value.replace(/\D/g,'')"/>
  7. <span class="dodanodata">do</span>
  8. <input type="text" class="tytul" name="max" value="<?php http://www.php.net/echo $max; ?>" style="width:50px;" onkeyup="this.value=this.value.replace(/\D/g,'')"/>
  9. <select name="sort" value="<?php http://www.php.net/echo $sort; ?>">
  10. <option name="sort" value="id">id</option>
  11. <option name="sort" value="price">cena</option>
  12. </select>
  13. <input type="submit" class="dodajbtn" value="szukaj" />
  14. </div>
  15. </form>


Zapytanie SQL:
  1. $query = http://www.php.net/mysql_query("SELECT * FROM `item` WHERE `tag` LIKE '%$szukaj%' AND price <= '$max' AND price >= '$min' ORDER BY `$sort` DESC LIMIT $limit,9");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)