Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [mysql] multi zapytanie LIKE
Forum PHP.pl > Forum > Bazy danych
Spyder
Witam

moj system wyszukiwania oparty jest na 3 listach chekboxow pogrupowanych tematycznie industry serwices factory system ma ciagle zawezac wynik i moge podac tyle wartosci z kazdej listy ile chce mam cos takiego

  1. SELECT * FROM services WHERE industry LIKE '$ind01' OR industry LIKE '$ind02' OR industry LIKE '$ind03' OR industry LIKE '$ind04' OR industry LIKE '$ind05' OR industry LIKE '$ind06' OR industry LIKE '$ind07' AND service LIKE '$ser03'


i teraz service ma kolejne 15 wartosci. Nie dodalem factory bo jak bede wiedzial jak to zrobic na 2 to zrobie na 3 tez.

czyli np

id | industry | service | factory

1 | ab | cd | gg
2 |ab | dd | gg
3 |ss | ff | ss

teraz to dziala tak ze jak zaznacze w industry ab oraz w service cd to wyswietli mi takze to co ma ab i dd czyli sortuje w jednym ale juz nie uwzglednia 2...

Prosze o pomoc
nospor
No bo jesli ma uwzglêdniac i jedno i drugie to musisz dac AND a nie jak masz teraz OR
Spyder
nie dziala z and samymi
nospor
spyder czy ja ci jeszcze musze mowic ze "nie dziala" to ty sobie mozesz....
Co ci nie dziala, czym sie to objawia? Prad ci gasnie w domu jak dasz AND?

pozatym jesli dasz AND to wszystkie warunki musza byc spelnione, wiec mam nadzieje ze wowczas pustych nie dajesz?
Spyder
No wlasnie i tu problem puste sa i nie wiem jak je wyeliminowac czyli

  1. SELECT * FROM services WHERE industry LIKE '$ind01' AND industry LIKE '$ind02' AND industry LIKE '$ind03' AND industry LIKE '$ind04' AND industry LIKE '$ind05' AND industry LIKE '$ind06' AND industry LIKE '$ind07' AND service LIKE '$ser03'


zadziala jak podam wszystkie indy ale co jak to zrobic jesli czasami bedzie 03 i 07 a innego razu 01 i 03

a chyba wiem wstawie to pod zmienna winksmiley.jpg
nospor
jesli masz nie zaznaczone checkboxy to ich nie dawaj do zapytania. to chyba logicznie tongue.gif

http://forum.php.pl/index.php?showtopic=34450&st=0
Spyder
  1. <?php
  2. $wh = array();
  3. if ($ind !='')
  4.  $wh[] = "( 
  5.  industry = '".$ind01."' or
  6.  industry = '".$ind02."' or
  7.  industry = '".$ind03."' or
  8.  industry = '".$ind04."' or
  9.  industry = '".$ind05."' or
  10.  industry = '".$ind06."' or 
  11.  industry = '".$ind07."' )";
  12. if ($ser !='')
  13.  $wh[] = "( 
  14.  service = '".$ser01."' or 
  15.  service = '".$ser02."' or
  16.  service = '".$ser03."' or
  17.  service = '".$ser04."' or
  18.  service = '".$ser05."' or
  19.  service = '".$ser06."' or
  20.  service = '".$ser07."' or
  21.  service = '".$ser08."' or
  22.  service = '".$ser09."' or
  23.  service = '".$ser10."' or
  24.  service = '".$ser11."' or
  25.  service = '".$ser12."' or
  26.  service = '".$ser13."' or
  27.  service = '".$ser14."' or
  28.  service = '".$ser15."' or
  29.  service = '".$ser16."' or
  30.  service = '".$ser17."' or
  31.  service = '".$ser18."' or
  32.  service = '".$ser19."' or
  33.  service = '".$ser20."' or
  34.  service = '".$ser21."' or
  35.  service = '".$ser22."' or
  36.  service = '".$ser23."' or
  37.  service = '".$ser24."' or
  38.  service = '".$ser25."' or
  39.  service = '".$ser26."' or
  40.  service = '".$ser27."' or
  41.  service = '".$ser28."' or
  42.  service = '".$ser29."' or
  43.  service = '".$ser30."' or
  44.  service = '".$ser31."' or
  45.  service = '".$ser32."' or
  46.  service = '".$ser33."' or
  47.  service = '".$ser34."')";
  48. if ($cap !='')
  49.  $wh[] = "( 
  50.  capability = '".$cap01."' or 
  51.  capability = '".$cap02."' or 
  52.  capability = '".$cap03."' or 
  53.  capability = '".$cap04."' or 
  54.  capability = '".$cap05."' or
  55.  capability = '".$cap06."' or
  56.  capability = '".$cap07."' or
  57.  capability = '".$cap08."' or
  58.  capability = '".$cap09."' or
  59.  capability = '".$cap10."' or  
  60.  capability = '".$cap11."' )";
  61.  
  62. if (!empty($wh))
  63.  $where = 'where '.implode(' and ', $wh);
  64. else
  65.  $where = '';
  66.  
  67.  
  68.  $SEARCH = "SELECT * FROM cos $where";
  69. ?>


i warunek np
  1. <?php
  2. $cap = $cap01.$cap02.$cap03.$cap04.$cap05.$cap06.$cap07.$cap08.$cap09.$cap10.$cap11;
  3. ?>



Zrobione dziala dzieki ponownie smile.gif poprawiona wersja juz na pentlach winksmiley.jpg
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.