Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: puste warunki z formularza a wyświetlanie danych z mysql
Forum PHP.pl > Forum > PHP
Rekar
Stanąłem przed następnujacym dylematem:

Mam formularz z którego wysyłam jakieś tam warunki do wyszukania. Problem w tym, iz nie zawsze te warunki w formularzu są wybrane. Niestety mój skrypt wyświetla tylko wtedy dane z mysql jeśli takowe warunki są wybrane wszystkie. Natomiast kiedy jest wybrany np jeden lub żaden skrypt nie pokazuje żadnych rekordów.

Możecie pomóc?

Oto kod na którym utknąłem i nie wiem jak dalej kombinować.

CODE
SELECT * FROM `agtAgents` WHERE `level` = '$Level' OR `divisionID` = '$Division' OR `corporationID` = '$Corporation' OR `regionID` = '$Region' LIMIT 0,30


Będę niesamowicie wdzięczny za pomoc...
Xniver
Chodzi o coś podobnego do tego?
  1. <?php
  2. function buildWhere($params = array())
  3. {
  4. if(count($params))
  5. {
  6. $where = 'WHERE';
  7.  
  8. foreach($params as $key => $val)
  9. {
  10. if(is_string($val))
  11. {
  12. $val = '"' . $val . '"';
  13. }
  14.  
  15. $where .= ' `' . $key . '` = ' . $val . ' OR';
  16. }
  17.  
  18. $where = substr($where, 0, strval($where) - 3);
  19.  
  20. return $where;
  21. }
  22. else
  23. {
  24. return '';
  25. }
  26. }
  27.  
  28. $params = array();
  29.  
  30. if($_POST['level'])
  31. {
  32. $params['level'] = $_POST['level'];
  33. }
  34.  
  35. // ---
  36. // Tutaj nastepne parametry
  37. // ---
  38.  
  39. $query = trim('SELECT * FROM `agtAgents` ' . buildWhere($params));
  40. ?>
Rekar
Jeszcze duuuuuużo sie muszę nauczyć.

Dziękuję :-)
Kocurro
jeśli to ma być wyszukiwanie to pomyśl czy nie robić WHERE'ów z użyciem LIKE'ów ...

np:

Kod
SELECT * FROM `agtAgents` WHERE `level` LIKE '%$Level%' OR `divisionID` LIKE '%$Division%' OR `corporationID` LIKE '%$Corporation%' OR `regionID` LIKE '%$Region%' LIMIT 0,30


Tylko pamiętaj, że LIKE o wiele bardziej obciąża i więcej czasu wymaga niż zwykłe =, więc coś za coś winksmiley.jpg

pozdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.