Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowanie Rekordów
vi-valdi
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 9.11.2003
Skąd: Kraków

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


Mam dwie tabele books i books_bestlellers z polami:

Kod
books
------------------------------
id | ... | reszta danych | ...

books_bestsellers
-------------
id | id_books


bestsellerów może być dowolna ilość i skrypt sprawdza czy id_books jest = id i bardzo ładnie wyświetla wszystkie pozycje, które bestsellerami są.

A teraz chciałym żeby skrypt robił to jeszcze ładniej.
Chodzi o to żeby skrypt z całej listy bestsellerów wylosował np. 3 rekordy i tylko je wyświetlił.

Dozgonna wdzięczność za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Parti
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 22.07.2004

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


Jeśli dobrze rozumiem Twoje intencje, to chcesz wybrać 3 losowe rekordy, a następnie posortować je np. wg. tytułu. Stosuje się taki trick:

  1. (SELECT books.tytul_s, books.kod_okl, books_covers.nazwa_okl FROM books, books_news, books_covers WHERE books.id = books_news.id AND books_covers.kod_okl = books.kod_okl ORDER BY rand() LIMIT 3 )
  2. UNION
  3. (SELECT books.tytul_s, books.kod_okl, books_covers.nazwa FROM books, books_news, books_covers WHERE 1=0) ORDER BY books.tytul_s


Drugie zapytanie nie może zwrócić żadnego rekordu, stąd where 1=0.

Ten post edytował Parti 21.08.2004, 09:27:58
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: 11.10.2025 - 23:17