Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Losowanie dwóch obrazków
Watt
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

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


Witam,

Jednym z modułów na mojej stronie jest losowanie dwóch randomowych obrazów, po odświeżeniu strony losują sie kolejne 2 obrazki na mysql RAND() - pytanie jak zrobić, aby to nie były te same obrazki. (Wiadomo, jak jst mało obrazów to zaczną sie powtarzać) Myślałem żeby zapisać już wylosowane w formie ciasteczka i zapisywać tam ID dwóch obrazków np:
Kod
43 - 32
65 - 89
.
.
.

itd. Pytanie jak zrobić sensowny warunek w mysql, żeby coś takiego zadziałało majac takie zapytanie:
Kod
SELECT * FROM obrazki ORDER BY RAND() LIMIT 2
Musiałbym zrobić coś takiego
Kod
SELECT * FROM obrazki WHILE (id != 43 AND id != 32) OR (id != 65 AND id != 89) [itd..] ORDER BY RAND() LIMIT 2

Jest na to jakaś lepsza metoda?

Ten post edytował Watt 30.10.2012, 19:42:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
punoljoe
post
Post #2





Grupa: Zarejestrowani
Postów: 52
Pomógł: 2
Dołączył: 4.07.2008

Ostrzeżenie: (30%)
XX---


moim sposobem możesz wprowadzić numery, które były do bazy (nowej tabeli) bądź pliku i potem sprawdzać... inaczej raczej tego nie zrobisz... musisz zapisać gdzieś kombinacje jakie były (numery id zdjęć) i potem nie dopuścić do powtórki.

np. tabela (id_kombinacji int(10) not null unsigned primary_key auto_inc ;
id_one int (10) not null unsigned;
id_two int(10) not null unsignek)

wpisujesz rekord do tej tabeli, gdy wyświetlasz zdjęcia a następnie przed wyświetleniem kolejnej kombinacji sprawdzasz numer z jedną kolumną (np. id_one) jeśli jest zgodność to potem z id_two dla danych rekordów... i już wiesz, wyświetlasz lub losujesz ponownie i znów sprawdzasz...

Ten post edytował punoljoe 30.10.2012, 21:00:00
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: 5.10.2025 - 11:06