Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z zapytaniem bis
Forum PHP.pl > Forum > Bazy danych > MySQL
Martin24
Ostatnio poradziłem sobie z wyszukiwarką, które wynajduje słowa kluczowe najpierw w autorze, potem w tytule, a potem w opisie i wyświetla wszystko naraz w kolejności: po autorze, tytule i opisie. Dałem radę to zrobić za pomocą kilku, a nie jednego zapytania. Pozostaje jednak problem: jak ustawić limit pozycji do wyświetlenia jeśli mam trzy zapytania, które wyświetlają wyniki jedne pod drugimi? Czy jest na to jakaś metoda?
sobstel
IMHO najpierw powinienes raczej zastanowic sie jak to zrobic w jednym zapytaniu
Martin24
Jestem zielony i nie bardzo wiem gdzie szukać... Może jakaś podpowiedź?
Stringy
LIMIT ogranicza liczbe wierszy zwracanych przez jedno zapytanie, musisz wiec zrobić to w jednym zapytaniu. Z twojego opisu niestety mało wynika. Najlepiej opisz strukture bazy (tabele, kolumny) oraz co ma zwracać takie zapytanie (jak mają być powiązane dane) to postaram sie napisać do tego jakis select.
Martin24
ok. Mam tabelę books, w której kolumny id, autor, tytul, opis. Teraz przez zapytanie chcę, żeby wyświetliły mi się najpierw pozycje w których autor pasuje do zapytania, potem takie, w których pasuje tytul, a na końcu takie, w których opisie znajduje się poszukiwane slowo kluczowe. Poza tym chciałbym wprowadzić limit wyświetlanych pozycji na stronie do, np. 30. Mam nadzieję, że wyjaśniłem wszystko... Z góry dzięki.
strife
  1. SELECT id, autor, tytul, opis
  2. FROM books WHERE autor LIKE '%klucz%'


Nie wiem jak to połączyć w jedno zapytanie tak aby szukało trzech wartości a potem je zwracało myślę że jakoś przez OR bądź AND w zapytaniu, ale konkretnie nie wiem, zawsze możesz to zrobić przez 3 zapytania...

Co do reszty to limit do powiedzmy 30 wprowadzasz przez LIMIT
  1. SELECT id
  2. FROM books LIMIT 0, 30

Począwszy od pierwszego rekordu pokaże 30.
Martin24
ale jeśli zrobię to w trzech zapytaniach, to nie mogę ustanowić limitu...
NuLL
Crossposting na forum jest surowo zakazany i jest równy ostrzeżeniu.
http://forum.php.pl/index.php?showtopic=340554&hl=

BTW. Crossposting bardzo perfidny.
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.