Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Wyszukiwanie po tagach z wymaganiem braku pozostałości
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
od kilku godzin zastanawiam się jak wykonać następującą modyfikacje wyszukiwania po tagach:

Na początek skrypt którego problem dotyczy:

  1. $tags = $_POST['tags'];
  2. $tag = explode(';', $tag);
  3. $query = 'SELECT * FROM laptopy WHERE ';
  4. for($i=0; $i<count($tag); $i++)
  5. {
  6. $query .= 'tag LIKE "%'.$tag[$i].'%"';
  7. if($i !=count($tag)-1) $query .= ' OR ';
  8. }


Zastanawiam się jak wykonać modyfikację która pozwoliłaby mi na wyszukanie tylko tych modeli które spełniają warunki podane przez użytkownika i ani jednego więcej (odwrotnie niż zwykło się budować zapytania).
W linijce if($i !=count($tag)-1) $query .= ' OR '; można dodać AND ale to nie załatwia sprawy :-/

Proszę o pomoc lub wskazówki, za którą z góry dziękuję.
memory
  1. SELECT * FROM laptopy where tag in ('i7','r9 280x')
phpion
Zakładam, że w polu tag masz tagi zapisane w postaci tekstu oddzielone np. przecinkami. Wówczas możesz:
1. Warunki łączysz poprzez AND (rekord musi mieć wszystkie wprowadzone tagi).
2. Zliczasz liczbę przecinków w polu tag (+1) i ta liczba musi być równa liczbie wpisanych przez użytkownika tagów.
Dzięki temu uzyskasz rekordy, które mają wszystkie wprowadzone przez użytkownika tagi i ani jednego więcej.
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.