Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL]Zapytanie, User online top
Malinaa
post 26.01.2011, 21:09:19
Post #1





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Witam,

mam takie zapytanie:

$zapytanie = "SELECT z.*, u.login, u.punkty, u.ranga, p.nazwisko, p.motto, o.login AS login_online FROM uzytkownicy_znajomi z"
." JOIN uzytkownicy_profil p ON p.uzytkownicy_id = z.znajomi_id"
." JOIN uzytkownicy u ON u.id_uzytkownicy = z.znajomi_id"
." JOIN uzytkownicy_online o ON o.login = '$user_online'"
." WHERE z.uzytkownicy_id = '$id'"
." ORDER BY z.data ASC"; // ORDER BY o.login ?

i mam kłopot z posortowanie wyniku, aby jako pierwsze rekordy wyświetlani byłi użytkownicy online (zalogowani - $user_online).

Tabela uzytkownicy_online zawiera tylko dane o aktualnie zalogowanych login, timestamp...
Jeśli nikt nie jest zalogowany jest pusta.

Zapytanie ma wyświetlić wszystkich uzytkowników z tabeli uzytkownicy i dodatkowe dane i innych tabel (i wyświetla),
ale jak posortować rekordy tak, aby jako pierwszych wyświetlić użytkowników znajdujących się w tabeli uzytkownicy_online - zalogowani nazwa użytkownika w kolumnie login?


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
CuteOne
post 26.01.2011, 21:30:30
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Dodaj dodatkową kolumnę do uzytkownicy_online np. is_online gdzie 1- zalogowany, 0- niezalogowany wtedy do zapytania wystarczy dodać

ORDER BY o.is_online ASC // 1 jest większe od 0 więc najpierw wyświetli zalogowanych smile.gif

Ten post edytował CuteOne 26.01.2011, 21:31:23
Go to the top of the page
+Quote Post
Malinaa
post 26.01.2011, 21:36:05
Post #3





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Musi być dodatkowa kolumna tylko po to, aby wyświetlić user online top (zalogownych pierwszych) ?


--------------------
I welcome you on the Internet >>> Design by Malina
Go to the top of the page
+Quote Post
CuteOne
post 26.01.2011, 22:19:15
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Dodatkowa kolumna typu tinyint nie spowolni ci bazy, nie zmniejszy (odczuwalnie) szybkości pobierania danych i jest chyba najprostszą odp. na twoje pytanie. Chociaż jeszcze łatwiej było by dodać takie pole bezpośrednio do tabeli z danymi użytkownika.

Go to the top of the page
+Quote Post
Malinaa
post 26.01.2011, 23:17:04
Post #5





Grupa: Zarejestrowani
Postów: 573
Pomógł: 6
Dołączył: 21.07.2008

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


Mialem nadzieje, że można inaczej,
ale i tak muszę jeszcze poprawić tabele uzytkownicy_online
chciałem jakoś sprytniej, ale jedna kolumna więcej...
mówią, że od przybytku głowa nie boli smile.gif

Dzięki


--------------------
I welcome you on the Internet >>> Design by Malina
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: 16.06.2025 - 20:45