Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Konkretne rekordy
-z_line-
post
Post #1





Goście







Mam problem z zapytaniem (ogólnie jest w porządku, ale za dużo rekordów mi wyświetla)
  1. $result = mysql_query("SELECT * FROM yt WHERE tytul='Makijaż' AND status=0 ORDER BY id DESC");

Rekordy są pobierna z tabeli yt (YouTube). Chcę wyświetlić filmiki , ale czasem zdarza się (tak jak to jest w przypadku słowa kluczowego "makijaż"), że jest ich zbyt wiele. Są różne rekordy w bazie, a dokładniej mówiąc różne tytuły. Jak mogę zrobić, by wyświetlało np. 30 rekordów na podstawie danego słowa kluczowego, potem następne 30 rekordów...
Nie chodzi tu o "stronicowanie" wyników, lecz o wyświetlenie trzydziestu pierwszych wyników, potem zmiana zapytania i nastepne 30 wyników... itd
Prosze o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


LIMIT (MySQL)
Go to the top of the page
+Quote Post
-z_line-
post
Post #3





Goście







Cytat(abort)
LIMIT (MySQL)

Nie rozumiem za bardzo. mam dodać do zapytania
  1. LIMIT MySQL

(IMG:style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Na końcu zapytania dodaj LIMIT:

  1. $result = mysql_query("SELECT * FROM yt WHERE tytul='Makijaż' AND status=0 ORDER BY id DESC LIMIT $poczatek, $rekordow_do_wyswietlenia");

Go to the top of the page
+Quote Post
-z_line-
post
Post #5





Goście







Ale ja nie mam zmiennej $poczatek...
Co z tym zrobić
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Domyślam się, że nie masz zmiennej początek, bo to tylko przykład, zamiast tego wstaw chociażby 0,30.

  1. $result = mysql_query("SELECT * FROM yt WHERE tytul='Makijaż' AND status=0 ORDER BY id DESC LIMIT 0, 30");


I zapytanie zwróci 30 pierwszych rekordów.
Go to the top of the page
+Quote Post
-z_line-
post
Post #7





Goście







Dałem tak:
  1. $result = mysql_query("SELECT * FROM yt WHERE tytul='Makijaż' AND status=0 ORDER BY id DESC LIMIT 0,30, 30");

ale wyskaują błędy... nie wiem

Napisałeś, że $poczatek da mi pierwsze trzydzieści rekordów. Błąd. Chcę wyświetlić 30 rekordów i dlatego zamiast $rekordow_do_wyswietlenia dałem też 30. Gdzie jest błąd - nie wiem
Go to the top of the page
+Quote Post
abort
post
Post #8





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

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


Przeanalizuj (DOKŁADNIE!!!) zapytanie sformułowane przez ciebie i porównaj z tym, które podał @b4rt3kk.
Nadal uważasz, że jest TAKIE SAMO?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #9





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Tak jak abort napisał, ale objaśnie to jeszcze bardziej szczegółowo. LIMIT to funkcja MySQL, która przyjmuje za argument albo liczbę, albo zakres, w pierwszym przypadku pokazuje x pierwszych rekordów, w drugim podajesz od którego rekordu ma zacząć i ile rekordów ma wczytać.

  1. LIMIT 30 - wczyta 30 pierwszych rekordów
  2. LIMIT 10,30 - wczyta również 30 rekordów, ale zaczynając od 1o.
Go to the top of the page
+Quote Post

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: 3.10.2025 - 19:10