Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Wyszukiwanie po tagach z wymaganiem braku pozostałości
d0m1n1k_
post 29.06.2015, 10:54:47
Post #1





Grupa: Zarejestrowani
Postów: 208
Pomógł: 3
Dołączył: 13.07.2009
Skąd: Tarnów

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


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


--------------------
Prywatna koncepcja pasji - SprawdzAuto.info
Go to the top of the page
+Quote Post
memory
post 29.06.2015, 10:59:44
Post #2





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


  1. SELECT * FROM laptopy where tag in ('i7','r9 280x')
Go to the top of the page
+Quote Post
phpion
post 29.06.2015, 11:27:45
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 13:26