Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> puste warunki z formularza a wyświetlanie danych z mysql
Rekar
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.03.2008

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Xniver
post
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 26
Dołączył: 29.02.2008

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Xniver 3.03.2008, 00:43:22
Go to the top of the page
+Quote Post
Rekar
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 2.03.2008

Ostrzeżenie: (0%)
-----


Jeszcze duuuuuużo sie muszę nauczyć.

Dziękuję :-)
Go to the top of the page
+Quote Post
Kocurro
post
Post #4





Grupa: Zarejestrowani
Postów: 461
Pomógł: 32
Dołączył: 17.09.2003
Skąd: Łódź

Ostrzeżenie: (0%)
-----


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ś (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

pozdr.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 12:44