Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Sortowanie wyników
diamondking
post
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

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


Hej (IMG:style_emoticons/default/wink.gif)
Jestem przedszkolakiem i potrzebuję nakierowania jak mogę rozwiązać swój problem (IMG:style_emoticons/default/smile.gif)

W bazie danych mam tabele:

• Gracze (tam jest login, id i inne pola typu siła, szybkośc itp)
• Turniej (tu przechowuję tylko id graczy, którzy zgłosili się do turnieju).

Chcę by raz dziennie (to zrobię zadaniem cron) pobierało mi najpierw wszytskie ID graczy z tabeli turniej,
następnie np. pobierało siłę i szybkość danego gracza z tabeli gracze - mnożyło to (siła * szybkość)
i finalnie sortowało wyniki od najwyższego do najniższego.

Nakierujecie mnie jak mogę to rozwiązać ?
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
diamondking
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 7.02.2014

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


Cytat(Tomplus @ 18.09.2019, 11:15:39 ) *
Coś takiego?
  1. SELECT (G.sila* G.szybkosc) iloczyn FROM turniej T INNER JOIN gracze G ON G.id = T.graczId ORDER BY iloczyn DESC;


Wolę te rozwiązanie - w zupełności mi wystarcza.

Teraz pojawił się kłopot z wyświetlaniem wyników

  1. $pobierzturniej = $db -> Execute("SELECT (G.sila+ G.szybkosc) iloczyn FROM turniej T INNER JOIN players G ON G.id = T.player ORDER BY iloczyn DESC");
  2.  
  3. foreach ($pobierzturniej as $row)
  4. {
  5. echo $row['T.player']."-".$row["iloczyn"]."<br>";
  6. }


Iloczyn segreguje ok - ale nie wyśweitla mi ID gracza (IMG:style_emoticons/default/sad.gif)

EDIT:

Poradziłem sobie!
Dziękuję za pomoc!

  1. $pobierzturniej = $db -> Execute("SELECT (G.sila+ G.szybkosc) iloczyn, G.id playerid FROM turniej T INNER JOIN players G ON G.id = T.player ORDER BY iloczyn DESC");


A czy ktoś mi pomoże jak zrobić warunek, jeżeli nie pobrało żadnego rekordu by wyświetlić "Brak" ?

  1. $pobierzturniej = $db -> Execute("SELECT (G.sila + G.szybkosc) iloczyn, G.id playerid, G.user playerlogin FROM turniej T INNER JOIN players G ON G.id = T.player ORDER BY iloczyn DESC");
  2. if (count($pobierzturniej) > 0)
  3. {
  4. foreach ($pobierzturniej as $row)
  5. {
  6. echo $row['playerlogin']."-".$row["iloczyn"]."<br>";
  7. }
  8. }else {
  9. echo "Brak";
  10.  
  11. }


Tak niestety nie działa ;/

Poradziłem sobie (IMG:style_emoticons/default/smile.gif)

Ten post edytował diamondking 18.09.2019, 11:06:15
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 5.10.2025 - 11:16