Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Numerowana pozycja wyników z bazy
Forum PHP.pl > Forum > Przedszkole
SSB
Witam!
Mam sobie skrypcik, który mi wyciąga z bazy danych pewne dane. Są 3 kolumny - id, user i liczba. Sortuje mi to wg liczba. Wyswietla mi to dobrze, ale chcialbym zamienic ID na pozycję (ma to być taki jakby ranking). I jak to zrobić?
Wyświetlaniem zajmuje isę ten kod:
  1. while($row = mysql_fetch_array($sql))
  2. {
  3. echo '<tr><td>'.$row[id].'</td><td>'.$row[user].'</td><td>'.$row[liczba].'</td></tr>';
  4. }


I to oczywiście brzydko wygląda, jak ID idize 4, 8, 10, 3, 7 itp. i jest to nikomu nie potrzebne, dlatego chciałbym zmienić to na pozycję (+ będzie dodane stronnicowanie)
kadlub
  1.  
  2. $i=1;
  3. while($row = mysql_fetch_array($sql))
  4. {
  5. echo '<tr><td>'.$i.'</td><td>'.$row[user].'</td><td>'.$row[liczba].'</td></tr>';
  6. $i++;
  7. }
  8.  


o to Ci chodzi
modern-web
Dodaj taki fragment do zapytania SQL:
  1. ORDER BY `liczba` ASC

Jeśli chcesz posortować to malejąco to zamiast ASC daj DESC

Pozdrawiam!

(Mam nadzieję, że o to właśnie Tobie chodziło, bo z opisu nie bardzo rozumiem ;p)
SSB
@modern-web, niekoniecznie o to.
Jeżeli zaimplementowałbym ten system pozycjonowania (http://forum.php.pl/Pager-stronicowanie-t35498.html) i chciałbym, aby szło że na np 2 stronie szło dalej, to jak mam to zrobić? $i = $strona+10 ?
kadlub
to jest moje stronicowanie wyników

  1. $ile_na_stronie = 10; // ile wyników ma być wyświetlanych w kategorii na jednej stronie
  2. if(empty($_GET['start'])) {
  3. $poczatek = 0;
  4. }
  5. else {
  6. $poczatek = mysql_escape_string($_GET['start']);
  7. }
  8. $sql = mysql_query("SELECT * FROM twoja_tabela LIMIT $poczatek, $ile_na_stronie");
  9. $n=$poczatek+1;
  10.  
  11. while($row = mysql_fetch_array($sql))
  12. {
  13. echo '<tr><td>'.$n.'</td><td>'.$row[user].'</td><td>'.$row[liczba].'</td></tr>';
  14. $n++;
  15. }
  16.  
  17.  
  18.  
  19.  
  20. $all = mysql_query("SELECT COUNT(id) FROM twoja_tabela");
  21.  
  22. $ile = mysql_result($all, 0);
  23. $next = $_GET['start'] + $ile_na_stronie;
  24. $prev = $_GET['start'] - $ile_na_stronie;
  25. echo'<br>';
  26. if($ile > $ile_na_stronie) {
  27. for($i=0 ; $i<ceil($ile/$ile_na_stronie) ; $i++) {
  28. echo '<a href="twoja_strona?start='.($i*$ile_na_stronie).'">'.($i+1).'</a> | ';
  29. }
  30. if ($_GET['start'] == 0) {
  31. echo '<a href="twoja_strona?start='.$next.'">Następny></a>';
  32. }
  33. elseif (($_GET['start'] > 0) && ($next < $ile)) {
  34. echo '<a href="twoja_strona?start='.$prev.'"><Poprzedni</a> | ';
  35. echo '<a href="twoja_strona?start='.$next.'">Następny ></a>';
  36. }
  37. elseif ($next > $ile) {
  38. echo '<a href="twoja_strona?start='.$prev.'"><Poprzedni</a>';
  39. }
  40. }

tylko powstawiaj swoje dane
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.