![]() |
![]() ![]() |
![]() |
![]()
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
|
|
|
![]()
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 ![]() Ten post edytował CuteOne 26.01.2011, 21:31:23 |
|
|
![]()
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
|
|
|
![]()
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.
|
|
|
![]()
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 ![]() Dzięki -------------------- I welcome you on the Internet >>> Design by Malina
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 20:45 |