Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]sortowanie
Forum PHP.pl > Forum > PHP
Oscar_83
Witam, mam taki problem mam taki kod:

  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4. <meta name="Author" content="Marek Żukowski" />
  5. <title>Transfery</title>
  6. <style type="text/css">
  7. /* <![CDATA[ */
  8. a:hover {color: #FFFFFF; background-color: #426F0B; style="text-decoration: none"}
  9. /* ]]> */
  10. </style>
  11. </head>
  12. <body link="416F76" vlink="416F76" alink="416F76" bgcolor="A2BE76">
  13. <?php
  14.  
  15. $polaczenie = mysql_connect("localhost", "mzukowski", "xxx") or die("Sprawdź połączenie z serwerem");
  16. mysql_select_db("mzukowski",$polaczenie);
  17. mysql_query('SET NAMES latin2');
  18.  
  19. empty($_GET['sort'])?$sort='data_s':$sort=$_GET['sort'];
  20. $query = 'SELECT * FROM transfery ORDER BY "'.$sort.'"' ;
  21. $results = mysql_query($query, $polaczenie) or die (mysql_error());
  22. $num_transfery = mysql_num_rows($results);
  23.  
  24. $transfery = '
  25. <h2><center><br><font face="lucida console">Wszystkie transfery</font><br><br></center></h2>
  26. <table width="90%" border="1" cellpadding="2" cellspacing="2" align="center" bgcolor="FFFFFF">
  27.  <tr>
  28.  <th><font color="416F76">L.p</font>
  29.  <th><a href="transfery.php?sort=imie" style="text-decoration: none">Imię</a></th>
  30.  <th><a href="transfery.php?sort=nazwisko" style="text-decoration: none">Nazwisko</a></th>
  31.  <th><a href="transfery.php?sort=data_k" style="text-decoration: none">Data kupna</a></th>
  32.  <th><a href="transfery.php?sort=cena_k" style="text-decoration: none">Cena</a></th>
  33.  <th><a href="transfery.php?sort=data_s" style="text-decoration: none">Data sprzedaży</a></th>
  34.  <th><a href="transfery.php?sort=cena_s" style="text-decoration: none">Cena</a></th>
  35.  <th><a href="transfery.php?sort=zysk" style="text-decoration: none">zysk/strata</a></th>
  36.  </tr>
  37. ';
  38. $lp = 0;
  39. $zysk = 0;
  40.  
  41. while($row=mysql_fetch_assoc($results)){
  42. $lp++;
  43. $zysk = ($row ['cena_s']) - ($row ['cena_k']);
  44. $transfery .= '
  45. <tr>
  46. <td>'.$lp.'</td>
  47. <td>'.$row['imie'].'</td>
  48. <td>'.$row['nazwisko'].'</td>
  49. <td style="text-align: center;">'.$row['data_k'].' &nbsp</td>
  50. <td style="text-align: right;">'.$row['cena_k'].' &nbsp</td>
  51. <td style="text-align: center;">'.$row['data_s'].' &nbsp</td>
  52. <td style="text-align: right;">'.$row['cena_s'].' &nbsp</td>
  53. <td>'.$zysk.'</td>
  54. </tr>
  55. ';
  56. }
  57. $transfery .= '</table>';
  58.  
  59.  
  60.  echo $transfery;
  61.  echo '<h3><center><br><font face="lucida console">Do tej pory przeprowadzono '.$num_transfery.' transferów.</font></center></h3>';
  62.  
  63.  
  64. ?>
  65. </body>
  66. </html>


Kiedyś było wszystko dobrze a od jakiegoś czasu sortowanie przestało działać :/ nie wiem czemu chodzi mi o te sortowanie po nagłówku tabeli.

Bardzo możliwe że stało się to po wprowadzeniu nowszego phpmyadmina dla mojej bazy na ovh. pewny nie jestem, bo dopiero niedawno zorietnowałem się że nie działa.
domis86
to:

$query = 'SELECT * FROM transfery ORDER BY "'.$sort.'"' ;

zamien na:

$query = "SELECT * FROM transfery ORDER BY `".$sort."`" ;
Oscar_83
Działa smile.gif) super!! dzięki, bo już nie miałem pojęcia co tu jest grane smile.gif


a gdy mam takie sortowanie względem punktów:
  1. <?php
  2. $query = "SELECT * FROM liga_sezon21 ORDER BY Punkty DESC";
  3. ?>


a chciałbym zeby mi w pierwszej kolejności sortowało pod względem pkt, a w drugiej kolejności pod względem bramek, to jak to zrobić, bo mam tabele z drużynami piłkarskimi i jeśli mają tyle samo pkt to powinno bramki brać pod uwagę a nie bierze i jest zła kolejność

a cały kod wygląda tak:
  1. <?php
  2. $polaczenie = mysql_connect("localhost", "mzukowski", "xxx") or die("Sprawdź połączenie z serwerem");
  3. mysql_select_db("mzukowski",$polaczenie);
  4. mysql_query('SET NAMES latin2');
  5.  
  6. $query = "SELECT * FROM liga_sezon21 ORDER BY Punkty DESC";
  7. $results = mysql_query($query)
  8. or die (mysql_error());
  9. $liga_nag = '
  10. <h2><center>Liga V.90 sezon 21</center></h2>
  11. <table width="90%" border="1" cellpadding="2" cellspacing="2" align="center" bgcolor="FFFFFF">
  12.  <tr>
  13.  <th>Miejsce</th>
  14.  <th>Drużyna</th>
  15.  <th>Mecze</th>
  16.  <th>Wygrane</th>
  17.  <th>Remisy</th>
  18.  <th>Przegrane</th>
  19.  <th>Bramki</th>
  20.  <th>Punkty</th>
  21.  </tr>
  22. ';
  23. $lp = 0;
  24. while($row=mysql_fetch_array($results)){
  25. $lp++;
  26. $liga_nag .= '
  27.  <tr>
  28.  <td style="text-align: center;">'.$lp.'</td>
  29.  <td>'.$row['druzyna'].'</td>
  30.  <td style="text-align: center;">'.$row['mecze'].'</td>
  31.  <td style="text-align: center;">'.$row['wygrane'].'</td>
  32.  <td style="text-align: center;">'.$row['remisy'].'</td>
  33.  <td style="text-align: center;">'.$row['przegrane'].'</td>
  34.  <td style="text-align: center;">'.$row['bramki'].'</td>
  35.  <td style="text-align: center;">'.$row['punkty'].'</td>
  36.  </tr>
  37. ';
  38. }
  39. $liga_nag .="</table>";
  40.  
  41. echo $liga_nag;
  42. ?>
GrayHat
Kod
ORDER BY punkty, bramki
Oscar_83
Dzięki wielkie za wszystkie podpowiedzi
Pozdrawiam bardzo serdecznie smile.gif

w moim przypadku musiałem 2 razy DESC wpisać bo chciałem żeby sortowało od największej do najmniejszej :
  1. <?php
  2. $query = "SELECT * FROM liga_sezon21 ORDER BY punkty DESC, bramki DESC";
  3. ?>
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.