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---


ja bym pobrał z tabeli info ile jest elementów, potem uruchomił pętlę w php z wyborem dwóch liczb z danego zakresu(od 1 do maks ilości elementów) oczywiście sprawdzając warunek czy się nie powtórzyły i potem pobrał dwa zdjęcia o wylosowanych indeksach. ... napiszę Ci to... momento...


<?php

$sql="SELECT max(id_zdjec) FROM zdjecia";
$wynik=@mysql_query($sql);
if (!$wynik) {
exit (' blad podczas pobierania informacji z bazy danych a');
}
while ($row=mysql_fetch_array($wynik) ) {
$ilosc_zdjec=$row['max(id_zdjec)'];
}
$i=0;
$foto1=rand($ilosc_zdjec);
do {
$foto2=rand($ilosc_zdjec);
if ($foto1!=$foto2) { $i=99; }
} while ($i !=99);

// jesli wiecej zdjeć to zrób zmienną tablicową



i teraz pobierz zdjęcia o indeksie $foto1 i $foto2

?>


do zastosowania jeśli zdjęcia dodawane są do kolumny gdzie indeksujesz auto_increment , bez dziur w numeracji

Ten post edytował punoljoe 30.10.2012, 19:48:42
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:26