Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Pobieranie rekordów według określonych kryteriów
ossUter
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 27.11.2013

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


Witam,

parę ładnych godzin borykam się z problemem, bardziej chodzi o kwestię SQL.

Obrazując, skrypt po wpisaniu w textboxa wyszukuje w SQL dane rekordy, gdzie nazwa = wpisanna_wartosc. Zakładając, że wpisałem 2 nazwy oddzielając je przecinkiem (X, Y)

Mianowicie 2 warunki:

a) jeśli się wybierze opcję "wszystkie zawierające wpisane wartości" ma szukać wszystkich rekordów, w których występuje dana wyżej "nazwa". To działa:
  1. $where .= "AND nazwa IN('" . implode("','", $wprowadzona_wartosc) . "')";


Wzór:

Zawiera X;
Zawiera Y;
Zawiera Y i X;

To działa jak należy.

b ) jeśli się wybierze opcję "wszystkie zawierające TYLKO wprowadzone wartości ma szukać rekordów, w których występuje tylko w "nazwa" to, co wprowadziliśmy.

Tutaj nie wiem, jak to zrobić.

Wzór:

Zawiera X i Y - tylko, nie chcę rekordów, które zawierają tylko X, tylko Y oraz ewentualnie jeśli w MySQL w "nazwa" jest 3 opcje (X, Y, Z).

Nie wiem jak to jaśniej wytłumaczyć, reausumując:



--------------------

Przykład:

Mam 5 wartości w tabeli, gdzie nazwa to w różnych kombinacjach:

1)Nazwa1, Nazwa2,
2)Nazwa1, Nazwa8,
3)Nazwa1, Nazwa9,
4)Nazwa8, Nazwa3,
5)Nazwa4, Nazwa5,


Używając wybranej opcji pierwszej, gdzie w polu textboxa wpisane będzie: "Nazwa1, Nazwa8" Wynikiem będzie:
1), 2),3),4), to jest prawidłowe.

Używając opcji drugiej efektem powinno być TYLKO 2).

Ten post edytował ossUter 27.01.2018, 19:57:28
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ossUter
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 27.11.2013

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


Nie mogę skonstruować zapytania. Uwzględniając opcje a, to proste, jeśli chodzi o b, to ręce mi opadły.

Wiem, że jest to niezrozumiałe, może inaczej.


Chcę pobrać rekordy uwzględnione w textboxie, tj:


  1. $where = "AND nazwa IN('" . implode("','", $wprowadzona_wartosc) . "')";


To pokazuje mi rekordy, gdzie nazwa należy do zbioru $wprowadzona wartość i zakładając, że wprowadziłem tam "wynik1, wynik2" pokażą mi się rekordy zawierające:
wynik1 LUB wynik2 LUB wynik1 i wynik2

Teraz potrzebuję jakoś dojść do rozwiązania, gdy wpiszę w textboxie "wynik1, wynik2" rezultatem będzie:
tylko rekordy zawierające wynik1 i wynik2, no i NIC PO ZA TYM.

Może teraz trochę rozjaśniłem problem.
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 16:38