![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Dla treningu piszę swoją prostą gierkę internetową. Mam w bazie różne dane o postaci, tworze sortowanie wyświetlania wyników po róznych polach, np po nicku alfabetycznie, ilości wygranych walk itp. Chciałbym też zrobic sortowanie po sumie walk, czyli po wszystkich stoczonych walkach. Mam w bazie pola wins oraz loses. Sortowanie po największej licznie wygranych jest proste, ale jak zrobic sortowanie po ilosci walk (czyli sumie wygranych i przegranych)? Drugie pytanie: jak zrobić najlepiej, że po kliknieciu na sortowanie wg np nicku, jak kliknę raz to sortuje ASC, jak drugi raz to DESC? Myślałem o przekazywaniu getem sposobu sortowania np: sort=nick&sposob=asc Czy to dobre rozwiązanie? Jest jakieś lepsze? Dziękuję. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Sortowanie po największej licznie wygranych jest proste, ale jak zrobic sortowanie po ilosci walk (czyli sumie wygranych i przegranych)? Jako pole wybierasz sumę kolumn (używasz aliasu dla wyniku) i wg niego sortujesz. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, niestety nie rozumiem. Albo może źle wytłumaczyłem.
Mam w tabeli kolumny wins, loses, które trzymają wartości dla każdego użytkownika. Jak w SELECT zsumować wartości np jak ktoś ma 4 wygrane i 3 przegrane to razem 7, nikt nie ma większej sumy więc ten ktoś ląduje na górze. Wydaje mi się, że SUM() to nie tutaj (może się mylę), ale próbowałem i tak i nie wychodzi. $query = mysql_query("SELECT SUM(wins + loses) as fights FROM characters ORDER BY fights ASC"); $query = mysql_query("SELECT (wins + loses) as fights FROM characters ORDER BY fights ASC"); też nie działa Wiem, że to proste, ale nie denerwujcie się jesli mogę prosić... ![]() Edit: Z tym 2 problemem poradziłem sobie tak:
Nie jest to za dobre rozwiązanie, zna ktoś lepsze? Dziękuje. Ten post edytował grzegosh 15.07.2009, 22:36:50 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
A co do tego. Lepiej pobierać tylko wygrane, bądź przegrane niż wszystko
Ten post edytował Wicepsik 16.07.2009, 10:24:33 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, działa
![]() ![]() A czy ten sposób sortowania jak sie kliknie 2 raz na dany link to sortuje DESC, jak sie kliknie znow to ASC? Mój działa, jest w porządku, prócz tego, że jak ktoś kliknie na jakieś sortownie, potem ustawi zmienną na sortowanie DESC i jak kliknę na inny link sortujący to on posortuje wg DESC bo pobierze z GET'a... Jest lepsza metoda? Edit: a nie, przepraszam, jednak nie działa to poprawnie... Nie wyświetla mi w ogole sum tych walk... ;/ może dam cały kod, coś pomoże nie wiem. W dodatku wypisuje wiecej danych niż tylko te walki, wiec musze wybrać z bazy wiecej.
Przepraszam, że się tak pospieszyłem :/ Przepraszam, że piszę posta pod postem, ale temat zaginął, a nie chciałbym tworzyć nowego... Czy jest możliwe w ogole takie coś co chce osiągnąć? Czy muszę tworzyć w bazie nową kolumnę z wszystkimi walkami? Ten post edytował grzegosh 16.07.2009, 19:02:33 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Przepraszam, że piszę posta pod postem, ale temat zaginął, a nie chciałbym tworzyć nowego... Czy jest możliwe w ogole takie coś co chce osiągnąć? To znaczy? Wal konkretnie. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tzn, dalej ten sam problem.
W bazie jest tabela characters, w niej informacje o postaci, a w śród tych informacji kolumny wins i loses. Kod zamieszczony wyżej wyświetla mi tabelę, taki jakby ranking użytkowników. Zrobiłem sobie sortowanie informacji np po nicku alfabetycznie, po ilości wygranych walk, ale nie wiem jak zrobić sortowanie po ilości stoczonych walk (czyli walki wygrane + przegrane). Tej informacji w bazie nie mam. Zatem, jak posortować od najwiekszej liczby "ilość walk stoczonych"? Jest jakiś prosty sposób, czy pozostaje mi tylko sortowanie ręcznie jakąś funkcją, albo kolejna kolumna w bazie? :/ Dzięki erix. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Ale zrobiłeś, jak pisaliśmy...?
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale nic się nie wyświetla, jedno zero. Możliwe, że to działa, ale nie wiem jak potem wypisać te wszystkie informacje z bazy, skoro wybieram tylko wins + loses. Robiłem:
$query = mysql_query("SELECT (SUM( wins ) + SUM( loses )) AS fights, lvl, wins, loses, login FROM characters ORDER BY fights ASC, login ASC"); ale to tez nic nie daje, a nawet wywala bład. Zdaje mi się, że w ogole to nie działa. |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie:
a:
Bo SUM liczy sumę we wszystkich rekordach. A wywala błąd, bo SUM jest funkcją agregującą, która działa wyłącznie z GROUP BY. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 51 Pomógł: 3 Dołączył: 26.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
No, teraz działa już na pewno, dzięki wielkie
![]() Jeszcze mam pytanie, odnosnie tego sortowania po kliknieciu ASC lub DESC, jest jakiś lepszy sposób niż ten który zrobiłem i wkleiłem wyżej? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.07.2025 - 20:47 |