• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[MySQL] Jak w zapytaniu SQL porównać zmienną w kolumnie tabeli do zawartości zmiennej? (nie na odwrót)

VPS Starter Arubacloud
0 głosów
926 wizyt
pytanie zadane 19 października 2017 w SQL, bazy danych przez Maciek123233 Gaduła (3,400 p.)
edycja 19 października 2017 przez Maciek123233

Witam, robię stronę internetową biblioteki, jedna ze stron to wyszukiwarka książek. Autor, tytuł, ISBN są bazie danych, i nie ma żadnego problemu z łączeniem. Samo zapytanie wygląda tak:

$zapytanie =  "SELECT * FROM ksiazki WHERE autor LIKE '%$ksiazka%' OR tytul LIKE '%$ksiazka%' OR ISBN='$ksiazka'";

I dzięki temu skryptowi po wpisaniu frazy "henryk" wyszuka mi wszystkie książki z tytułem i imieniem autora zawierające tą frazę - i tak ma być.

Jednak jest jeden problem, jeśli do zmiennej $ksiazka wpiszemy "Henryk Sienkiewicz Potop" to ani autor LIKE '%$ksiazka%' ani tytul LIKE '%$ksiazka%' nie wykryje żadnej książki. Czy jest jakiś zapis typu $ksiazka LIKE '%autor%'? - tak żeby to co wpisze użytkownik porównać do zmiennych w kolumnach tabeli a nie na odwrót.

1 odpowiedź

0 głosów
odpowiedź 19 października 2017 przez jeremus Maniak (59,720 p.)
wybrane 19 października 2017 przez Maciek123233
 
Najlepsza
Przychodzą mi do głowy dwa rozwiązania :

1. kilka pól do wyszukiwania i kilka zmiennych  ( np. $tytul , $autor  ) i  w zapytaniu autor like '%$autor%' or tytul like '%$tytul%'

2. jeśli upierasz się przy jednym polu do wyszukiwania to > split tego pola na kilka zmiennych np. po spacji

 miałbyś $var1="Henryk" , $var2="Sienkiewicz", $var3="Potop", a w zapytanie zrobione programowo miałoby warunek z wszystkimi kombinacjami np. tytul like '%$var1%' or tytul like '%$var2%' or tytul like '%$var3%' or autor like '%$var1%' or itd...
komentarz 19 października 2017 przez Maciek123233 Gaduła (3,400 p.)
w takim wypadku split wydaję mi się najlepszy, dzięki

Podobne pytania

0 głosów
1 odpowiedź 816 wizyt
pytanie zadane 11 października 2016 w SQL, bazy danych przez Typowy Janusz Dyskutant (8,150 p.)
0 głosów
1 odpowiedź 1,102 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...