Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] uniwersalne zapytanie
Forum PHP.pl > Forum > Przedszkole
marcin_olo
Sprawa jest taka: chcę zrobić w miarę uniwersalne zapytanie, tzn. takie, które bez względu na to jakie dostanie parametry, ewentualnie nie dostanie ich wcale będzie działało.

Napisałem coś takiego, ale nie dziła
  1. <?php
  2. if($parms) {
  3. foreach($parms as $key => $value) {
  4. switch ($key) {
  5. case 'autor':
  6. $w[] = ' autor = "'.$value.'"';
  7. break;
  8. case 'active':
  9. $w[] = ' active = "'.$value.'"';
  10. break;
  11. }
  12. }
  13. $i = count($w);
  14. foreach($w as $key => $value) {
  15. if ($i == 1) $where = $value;
  16. elseif ($key == 0) {
  17. $where = $value;
  18. }
  19. else {
  20. $where .= 'AND';
  21. $where = $value;
  22. }
  23.  
  24. }
  25. }
  26. $query = 'SELECT * FROM tabela '.$where.'
  27. ?>


Wcześniejsza wersja wyglądała ta:
  1. <?php
  2. if($parms) {
  3. $where = 'WHERE';
  4. foreach($parms as $key => $value) {
  5. switch ($key) {
  6. case 'autor':
  7. $where .= ' autor = "'.$value.'" AND';
  8. break;
  9. case 'active':
  10. $where .= ' active = "'.$value.'"';
  11. break;
  12. }
  13. }
  14. }
  15. $query = 'SELECT * FROM tabela '.$where.'
  16. ?>


i to działało, ale nie tak do końca uniwersalnie. Jeśli wybrałem autora to musiałem też wybrać to czy jest aktywny czy nie, nie mogłem wyświetlić wszystkich.

Jak to zmodyfikowac lub może jakieś inne, lepsze rozwiazanie tego problemu.
Z góry dzięki.
Cysiaczek
Tia - problem niwe jest wcale taki prosty do rozwiązania jak się może wydawać. Jeśli chcesz zobaczyć, jak to można spróbowac zrobić, to zapraszam do repozytorium PEAR + chyba na php.pl jest jakiś artykuł o bramkach do bazy.
nospor
Cytat
problem niwe jest wcale taki prosty
osmiele sie nie zgodzic.

@marcin_olo wystarczy potem robic implode na tablicy a nie jakies dziwny ify co ty. tu masz podobny topic:
http://forum.php.pl/index.php?showtopic=36...=0&#entry204618
marcin_olo
@nospor, dzięki.
Post uważam za zamknięty.
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.