Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Zapytanie
Forum PHP.pl > Forum > Przedszkole
Malinaa
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?
CuteOne
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
Malinaa
Musi być dodatkowa kolumna tylko po to, aby wyświetlić user online top (zalogownych pierwszych) ?
CuteOne
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.

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