Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> sortowanie danych w tabeli piłkarskiej :)
Janek111
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

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


Witam wszystkich (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Mam problem z dokładnym posortowaniem danych w tabeli piłkarskiej.
W bazie danych mam tabele 'tabela' z kolumnami 'klub', 'mecze' (czyli ilosc rozegranych meczy), 'punkty', 'strzelone' (bramki), 'stracone' (tez bramki), 'roznica' (rowniez bramek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ). I teraz sortuje dane tak jak to powinno byc:

  1. ...
  2. ORDER BY punkty DESC, roznica DESC, strzelone DESC, stracone ASC ...


I wszystko jest w porządku, ale jesli okaze się ze dwie lub wiecej druzyn ma tyle samo punktow, taka sama roznice bramek i tyle samo straconych i strzelonych, to trzeba sortować według bezpośrednich spotkań. Nie bardzo wiem jak to zrobić. Wymyslilem sobie ze utworze tabele 'wyniki' z kolumnami meczID, klub1, klub2, wynik1 (bramki klubu1 w danym meczu), wynik2 (bramki klubu2) i bede tu zapisywal wyniki kazdego meczu. No i można by tą tabele jakoś wykorzystać ale nie wiem jak (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Trzeba wziąć pod uwage mecz jakiś dwóch drużyn i rewanż (chyba że rewanż nie został jeszcze rozegrany to pod uwage trzeba brać tylko pierwszy mecz). Jak byście mieli jakiś pomysł to piszcie. Z góry dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Janek111 30.01.2006, 10:40:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
bodhi
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 31.01.2006
Skąd: Kraków

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


Ja zrobiłem coś takiego w php.
Go to the top of the page
+Quote Post
Janek111
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

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


No ja też robie w php, ale wykorzystuje baze danych:) Trzeba stworzyć jakieś połączenie między 2 tabelami napewno.
Go to the top of the page
+Quote Post
Radarek
post
Post #4





Grupa: Zarejestrowani
Postów: 188
Pomógł: 0
Dołączył: 23.05.2005

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


Cytat(Janek111 @ 2006-01-31 16:43:02)
No ja też robie w php, ale wykorzystuje baze danych:) Trzeba stworzyć jakieś połączenie między 2 tabelami napewno.

Cytat(bodhi @ 2006-01-31 16:12:17)
Ja zrobiłem coś takiego w php.


Zapewne chodzilo mu o to, ze dane sortowal na poziomie php a nie mysql.
Ja tez swego czasu robilem cos takiego i takze sortowalem na poziomie php. Mozesz zrobic na poziomie sql, ale nie zrobisz tego 1 zapytaniem, musialbys napisac sobie jakas ladna procedurke sqlowa. Jesli chcesz robic z poziomu php to zrob tak:
-pobierz sobie dla kazdego gracza wszystkie dane (pkt, mecze, wygrane, przegrane itp)
-nastepnie napisz sobie funkcje sortujaca, ktora w momencie gdy bedzie porownywac 2 gosci i do okreslenia kto jest wyzej/nizej bedzie potrzebowac wyniki ich bezposrednich spotkan to sobie pobierze z mysl wyniki i na tej podstawie zdecyduje
Go to the top of the page
+Quote Post
bodhi
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 31.01.2006
Skąd: Kraków

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


Cytat
Zapewne chodzilo mu o to, ze dane sortowal na poziomie php a nie mysql.

Dokładnie. W bazie miełem wyniki spotkań. Pobierałem, zliczałem punkty i gole w tabeli, dla indentycznej ilości punktów zliczałem minitabelki i na tej podstawie ustalałem kolejność w funkcji sortującej. moja tabela
Go to the top of the page
+Quote Post
Janek111
post
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

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


Dzięki, napisałem funkcje i teraz wszystko jest wporządku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Jeszcze jedno pytanie.
Mam kod do wyświetlania tabeli:
  1. <table width='75%' cellspacing='0' cellpadding='0'>
  2. <tr>
  3. <td></td>
  4. <td>Drużyna</td>
  5. <td>Mecze</td>
  6. <td>Punkty</td>
  7. <td>Zwycięstwa</td>
  8. <td>Remisy</td>
  9. <td>Porażki</td>
  10. <td>Strzelone</td>
  11. <td>Stracone</td>
  12. <td>Różnica</td>
  13. </tr>
  14. <?php
  15. for($a=0; $a<$ile_znalezionych; $a++)
  16. {
  17. $nr = $a+1;
  18. echo "<tr>";
  19. echo "<td>$nr </td>";
  20. for($b=0; $b<9; $b++)
  21. {
  22. echo '<td>'.$tabela[$a][$b].'</td>';
  23. }
  24. echo "</tr>";
  25. }
  26. echo '</table>';
  27.  
  28. ?>


Chodzi mi o zmienną '$nr'. Jak zrobić, w przypadku kiedy kilka drużyn będzie na tym samym miejscu, żeby '$nr' przy tych klubach miało taką samą wartość a następne $nr było większe o tyle ile druzyn było na jednym miejscu. Naprzykład:
3. Druzyna1
3. Druzyna2
5. Druzyna3
albo
3. druzyna1
3. druzyna2
3. druzyna3
6. druzyna4
Go to the top of the page
+Quote Post
bodhi
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 31.01.2006
Skąd: Kraków

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


Wymyśl coś. Np. zapamiętuj w zmiennej ilość punktów poprzedniej drużyny, jeżeli bieżąca drużyna ma taką samą to nie zwiększaj jej numeru tylko zwiększaj inną zmienną jąkąś offset, a potem do numeru kolejnej która ma już inną ilość punktów dodawaj offset.
Go to the top of the page
+Quote Post
Janek111
post
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

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


Nie wiem czy Cie dobrze zrozumialem ale, wtedy będą brane pod uwage punkty, a bezpośrednie spotkanie już nie.
Go to the top of the page
+Quote Post
koala
post
Post #9





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 4.03.2005

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


Nie znam się na MySQL ale na temat ekstraklasy piłkarskiej znalazłem cos takiego:
http://www.gajdaw.pl/bd/sql.html
Jest tam sporo przykładów z zapytaniami do bazy.
Może Ci się przyda.
Go to the top of the page
+Quote Post
bodhi
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 31.01.2006
Skąd: Kraków

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


Cytat
Nie wiem czy Cie dobrze zrozumialem ale, wtedy będą brane pod uwage punkty, a bezpośrednie spotkanie już nie.

Oczywiście masz rację. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Janek111
post
Post #11





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.04.2005

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


No, więc trzeba do tego podejść z 3 strony (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

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: 23.08.2025 - 16:16