Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Losowość, jednak wg. schematu, Konstrukcja zapytania.
NetJaro
post 21.06.2007, 10:58:05
Post #1





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

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
rasgan
post 21.06.2007, 11:03:15
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.


--------------------
Szczęścia w mrokach...
Go to the top of the page
+Quote Post
NetJaro
post 21.06.2007, 13:29:00
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 21.06.2007, 13:33:24
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.


--------------------
Szczęścia w mrokach...
Go to the top of the page
+Quote Post
Ludvik
post 21.06.2007, 13:39:03
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 21.06.2007, 13:44:45
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


--------------------
Szczęścia w mrokach...
Go to the top of the page
+Quote Post
NetJaro
post 21.06.2007, 19:58:18
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 smile.gif

EOT.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:45