Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Losowość, jednak wg. schematu
Forum PHP.pl > Forum > Przedszkole
NetJaro
Witajcie smile.gif

Mam tabelę skontruowaną tak: id|adres|premium|zatwierdzone.
Potrzebuję zbudować pytanie które będzie losowo wyświetlało dane z tej tabeli, jednak zachowując, że wyświetla tylko gdy zatwierdzone = 1 (to akurat nie jest dla mnie problemem) i pamiętając, że rekordy gdzie premium = 1 są zawsze na początku.
Czyli gdy rekordy są takie:
Cytat
1|onet.pl|1|1
2|wp.pl|1|1
3|interia.pl|1|1
4|gazeta.pl|0|1
5|di.com.pl|0|1
6|localhost|0|1


To raz wyświetla mi: onet.pl, interia.pl, wp.pl, di.com.pl, localhost, gazeta.pl a za innym razem interia.pl, onet.pl, wp.pl, localhost, gazeta.pl, di.com.pl. Czyli losowość ale zachowując regułę, że rekordy z premium = 1 zawsze na początku winksmiley.jpg

Budowa prostych zapytań nie jest dla mnie trudnością, jednak takie zapytania już nie są na moją wiedzę.

Dzięki z góry smile.gif

Pozdrawiam,
Marcin Jarek smile.gif
rasgan
Najpierw sobie wylosuj z tabeli te, które mają zatwierdzone i są premium ( WHERE ((premium=1) AND (zatwierdzone=1)) ) a później dodaj do wyniku tylko te, które są zatwierdzone i nie są premium ( WHERE ((premium=0) AND (zatwierdzone=1)) ). Ja bym to tak zrobił. Dwa proste zapytania zamiast jednego skomplikowanego.
NetJaro
Faktycznie, mógłbym tak zrobić (i zrobie tak) ale chodzi mi, aby były wszystkie rekordy w losowej kolejności. W tym też jest problem - bo nie wiem jaka funkcja za to odpowiada.
rasgan
Jako, ze słabo się znam to zrobiłbym tak:

Pobrać wszystkie rekordy zwiazane z zatwierdzonym i premium później na wyniku użyłbym funkcji opisanej tutaj http://php.net.pl/manual/pl/function.array-rand.php i wyświetlił to co trzeba. Następnie zrobiłbym to samo z tablicą zatwierdzonych ale bez premiuma.
Ludvik
Panowie, bez żartów... google: mysql random i macie jak na tacy podane. Podpowiem: ORDER BY RAND()...
rasgan
A powiem Ci, ze nie wpadłem by szukać w google, lenistwo i pogoda <- winne
NetJaro
Dziękuję wszystkim za pomoc smile.gif

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