Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/msql] Sortowanie tabeli
Forum PHP.pl > Forum > Przedszkole
Puzi
Witam,
Mam taki problem... Mam tabele o nazwie "Tabela" i w niej mam kolumny: nazwa, punkty, bramki i bilans. I chcę posortować tą tabelę według następujących kryteriów. Chciałbym aby sortowało mi tą tabele według punktów a jeśli liczba punktów była by taka sama to żeby posortowało te drużyny według bilansu. Jak to zrobić??

Pozdrawiam i proszę o pomoc
luniak
Zapytanie powinno wyglądać tak:

  1. "SELECT * FROM `Tabela` ORDER BY `punkty`, `bilans` DESC"


Oczywiście domyślam się ze chcesz sortować wyniki od największego do najmniejszego stąd ten DESC na końcu biggrin.gif
Puzi
Dałem tak i taki wynik mi wyszedł:
Kod
1. druzyna  4      7:8     -1
2. druzyna 6     10:27      -17
3. druzyna 6 11:12      -1
4.druzyna 7  29:10    19


I najpierw jest miejsce, nazwa druzyny, punkty, bramki a na samym koncu bilans...
Więc jest coś nie tak bo druzyny powinny być ustawione odwrotnie.
luniak
1. Po pierwsze coś rozkraczony masz ten kod.
2. Po drugie mógłbyś tutaj wrzucić kod php któru używasz do wyświetlania danych??
3. Po trzecie jaki masz format danych w tablei dla pól bilans i punkty??
nevt
kolega luniak zapomniał o jednym DESC
  1. SELECT * FROM `Tabela` ORDER BY `punkty` DESC, `bilans` DESC;
Puzi
Mój kod do wyświetlania jest taki:
Kod
$tresc_zapytania = "SELECT * FROM `cms_tabela_10` ORDER BY `punkty`, `bilans` DESC";
$zapytanie = mysql_query($tresc_zapytania);
while ($wiersz = mysql_fetch_row($zapytanie))
{
  echo '
  <tr>
  <td><center>'.$a++.'.</center></td>
  <td>'.$wiersz[0].'</td>
  <td><center>'.$wiersz[1].'</center></td>
  <td><center>'.$wiersz[2].'</center></td>
  <td><center>'.$wiersz[3].'</center></td>
  <td><center>'.$wiersz[4].'</center></td>
  <td><center>'.$wiersz[5].'</center></td>
  <td><center>'.$wiersz[6].':'.$wiersz[7].'</center></td>
  <td><center>'.$wiersz[8].'</center></td>
  </tr>
  ';    
}    
echo '</table>';
luniak
Cytat(nevt @ 4.03.2008, 20:43:42 ) *
kolega luniak zapomniał o jednym DESC
  1. SELECT * FROM `Tabela` ORDER BY `punkty` DESC, `bilans` DESC;


Nie nie zapomniałem, jeżeli masz zadeklarowany rodzaj sortowania raz i to na końcu to odnosi się on do wszystkich elementów

PS: Przynajmniej u mnie w skryptach tak to działało
Puzi
Witam,
Natrafiłem na kolejny problem związany z sortowaniem tabeli piłkarskiej. Jeśli np. dwie drużyny mają tyle samo punktów to powinno mi sortować według bilansu. Jeśli te dwie drużyny mają dodatni bilans to sortuje dobrze ale jeśli te drużyny mają ujemne bilanse to wynik jest nie taki jak powinien.
Zamiszeczam wynik sortowania tabeli według tego kodu:
Kod
$tresc_zapytania = "SELECT * FROM `tabela` ORDER BY `punkty` ASC, `bilans` DESC";


Oto wynik sortowania:
Cytat
1. Druzyna1 20 12
2. Druzyna3 20 10
3. Druzyna2 5 -10
4. Druzyna4 5 -5


Kolejno - miejsce - nazwa druzyny - punkty - bilans

Proszę o pomoc
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.