Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] Sortowanie wyniku z tabeli
Forum PHP.pl > Forum > Przedszkole
topor1988
Witam.
Chcę wyświetlić statystyki skilli przy pomocy dwóch tabel. - Do tego doszedłem winksmiley.jpg tylko nie chce mi sortować tego rosnąco, a użyłem opcji do sortowania.
Oto struktura tabel:
  1. CREATE TABLE `players` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(255) collate latin1_general_ci NOT NULL,
  4. `account_id` int(11) NOT NULL,
  5. .
  6. .
  7. .
  8. .
  9. `worldid` int(11) NOT NULL,
  10. PRIMARY KEY (`id`),
  11. KEY `name` (`name`),
  12. KEY `account_id` (`account_id`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
  14.  
  15.  
  16.  
  17. CREATE TABLE `player_skills` (
  18. `player_id` int(11) NOT NULL,
  19. `skillid` int(10) UNSIGNED NOT NULL,
  20. `value` int(10) UNSIGNED NOT NULL DEFAULT '0',
  21. `count` int(10) UNSIGNED NOT NULL DEFAULT '0',
  22. KEY `player_id` (`player_id`)
  23. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


A tutaj skrypt:

  1. <?php
  2. $link = mysql_connect($sql_host, $sql_user, $sql_pass)
  3. or die('Nie można się połączyć: ' . mysql_error());
  4. mysql_select_db($sql_db) or die ('Nie mozna wybrać bazy danych');
  5. $l = '0';
  6. echo '
  7.  
  8. lp.
  9. Wartość skilla
  10. Nick
  11. ';
  12. $wynik1 = mysql_query(&#092;"select `id`, `name`, `worldid` from players where `worldid` = '0'\");
  13. while ($wiersz1 = mysql_fetch_row($wynik1))
  14.  {
  15. $test_id = $wiersz1[0];
  16.  
  17.  
  18. $wynik22 = mysql_query(&#092;"select `player_id`, `skillid`, `value` from player_skills where `skillid` =
     '1' and `player_id` = '$test_id' ORDER BY `value` DESC LIMIT 100\");
  19.  
  20.  
  21.  
  22. while ($wiersz22 = mysql_fetch_row($wynik22))
  23.  {
  24. $wartosc_skilla = $wiersz22[2];
  25. $nick_ble = $wiersz22[0];
  26. $l = $l + '1';
  27. $wynik55 = mysql_query(&#092;"select `id`, `name`, `worldid` from players where `id` = '$nick_ble' LIMIT 100\");
  28. while ($wiersz55 = mysql_fetch_row($wynik55))
  29.  {
  30. echo ''. $l .'
  31. '. $wartosc_skilla .'
  32. '. $wiersz55[1] .'
  33. ';
  34.  }
  35.  }
  36.  }
  37. echo '
  38. <a href=\"javascript:history.back();\">Wstecz</a href=\"javascript:history.back();\">';
  39. ?>
Cysiaczek
Jak dla mnie to DESC oznacza sortowanie malejąco. Użyj ASC.


Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
topor1988
DESC jest dobre - chodzi aby na początku było największe a na końcu najmniejsze smile.gif Mała nieścisłość z tym rosnącym.

Aczkolwiek w danej chwili wcale nie sortuje danych. I tu jest pies pogrzebany sad.gif


EDIT:

Ok, poradziłem sobie. Napisze jak, może sie przyda komuś.

  1. <?php
  2. $link = mysql_connect($sql_host, $sql_user, $sql_pass)
  3. or die('Nie można się połączyć: ' . mysql_error());
  4. mysql_select_db($sql_db) or die ('Nie mozna wybrać bazy danych');
  5. $l = '0';
  6. echo '<center><table style="border-style:solid;border-width:1px;border-color:black;">
  7. <tr>
  8. <td width="20" style="border-style:solid;border-width:1px;border-color:42260e;">lp.</td>
  9. <td width="100" style="border-style:solid;border-width:1px;border-color:42260e;">Wartość skilla</td>
  10. <td width="200" style="border-style:solid;border-width:1px;border-color:42260e;">Nick</td>
  11. ';
  12.  
  13.  
  14. $wynik22 = mysql_query("select `player_id`, `skillid`, `value` from player_skills where `skillid` =
     '1' ORDER BY `value` DESC LIMIT 100"
    );
  15.  
  16.  
  17.  
  18. while ($wiersz22 = mysql_fetch_row($wynik22))
  19.  {
  20. $wartosc_skilla = $wiersz22[2];
  21. $nick_ble = $wiersz22[0];
  22. $l = $l + '1';
  23. $wynik55 = mysql_query("select `id`, `name`, `worldid` from players where `id` = '$nick_ble' and `worldid` = '0' LIMIT 100");
  24. while ($wiersz55 = mysql_fetch_row($wynik55))
  25.  {
  26. echo '<tr><td style="border-style:solid;border-width:1px;border-color:42260e;">'. $l .'</td>
  27. <td style="border-style:solid;border-width:1px;border-color:42260e;">'. $wartosc_skilla .'</td>
  28. <td style="border-style:solid;border-width:1px;border-color:42260e;">'. $wiersz55[1] .'</td>
  29. </tr>';
  30.  }
  31.  }
  32.  
  33. echo '</table><br><a href="javascript:history.back();">Wstecz</a></center></center>';
  34. ?>
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.