Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Losowość, jednak wg. schematu, Konstrukcja zapytania.
NetJaro
post
Post #1





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Witajcie (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam,
Marcin Jarek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rasgan
post
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 30.05.2007
Skąd: Kleszczów

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


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.
Go to the top of the page
+Quote Post
NetJaro
post
Post #3





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


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.
Go to the top of the page
+Quote Post
rasgan
post
Post #4





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 30.05.2007
Skąd: Kleszczów

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


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.
Go to the top of the page
+Quote Post
Ludvik
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Panowie, bez żartów... google: mysql random i macie jak na tacy podane. Podpowiem: ORDER BY RAND()...
Go to the top of the page
+Quote Post
rasgan
post
Post #6





Grupa: Zarejestrowani
Postów: 97
Pomógł: 0
Dołączył: 30.05.2007
Skąd: Kleszczów

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


A powiem Ci, ze nie wpadłem by szukać w google, lenistwo i pogoda <- winne
Go to the top of the page
+Quote Post
NetJaro
post
Post #7





Grupa: Zarejestrowani
Postów: 475
Pomógł: 0
Dołączył: 1.04.2005
Skąd: Warszawa

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


Dziękuję wszystkim za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

EOT.
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: 23.08.2025 - 09:21