Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Złe wyświetlanie numerów wierszy
Forum PHP.pl > Forum > PHP
TheShadooow
Witam to znowu ja. tongue.gif Mam tym razem problem tego typu, że dodałem sztucznie tworzoną tablę "miejsce" że numerują mi się wierszę. Lecz numerują się one tylko i wyłącznie co do strony. Czyli wyniki na 2 stronie są już znowu od 1. I moje pytanie brzmi tak czy ktoś potrafiłby mi pomóc i to naprawić?

Kod wygląda tak:



  1. <?php
  2.  
  3. //Połączenie z mysql i wybranie bazy
  4. $link = mysql_connect('host','user','haslo');
  5. mysql_select_db('db_7456',$link);
  6.  
  7. //Domyślne wartości, odpowiednio liczby rekordów na strone i przesunięcia
  8. $count=25;
  9. $offset=0;
  10.  
  11. //Pobranie danych z $_GET jezsli ustawione
  12. if(isset($_GET['count']))$count = $_GET['count'];
  13. if(isset($_GET['offset']))$offset = $count*$_GET['offset']; //numer strony
  14.  
  15. //Pobranie liczby rekordów
  16. $sql = 'Select count(*) from gracze';
  17. $result = mysql_query($sql,$link);
  18. $r = mysql_fetch_array($result);
  19. //Liczba stron, użycie ceil - zaokrąglenie w górę, w celu zapewnienia, że żadna strona się nie straci
  20. $pages = ceil($r[0]/$count);
  21.  
  22. //Pobranie odpowieniej paczki
  23. $zapytanie = "SELECT * FROM gracze WHERE punkty > 0 ORDER BY punkty DESC";
  24. $wynik = mysql_query($zapytanie);
  25. $miejsce = 1;
  26. $sql = 'Select * from gracze Limit '.$count.' offset '.$offset.';';
  27. mysql_query('SET NAMES \'utf8\'');
  28. $result = mysql_query($sql,$link);
  29.  
  30. //Początek tabeli
  31. $haha.gif = "<table><tbody><tr class='title'>
  32. <td align='center' class='tbl1'><br>&nbsp;Miejsce<br>&nbsp;</td>
  33. <td align='center' class='tbl1'><br>&nbsp;Punkty<br>&nbsp;</td>
  34. <td align='center' class='tbl1'><br>&nbsp;Gracz<br>&nbsp;</td>
  35. <td align='center' class='tbl1'><br>&nbsp;Morderstwa<br>&nbsp;</td>
  36. <td align='center' class='tbl1'><br>&nbsp;Czas Gry<br>&nbsp;</td>
  37. <td align='center' class='tbl1'><br>&nbsp;Zabite Zombie<br>&nbsp;</td>
  38. </tr>";
  39.  
  40. //Pętla po wszystkich rekordach
  41. while(($row=mysql_fetch_array($result) AND $miejsce <= 100)!=NULL ){
  42. $haha.gif .= "<tr>
  43. <td align='center' class='list'>".$miejsce++."</td>
  44. <td align='center' class='list'>".$row["Punkty"]."</td>
  45. <td align='center' class='list'>".$row["Gracz"]."</td>
  46. <td align='center' class='list'>".$row["MorderstwaTOTAL"]."</td>
  47. <td align='center' class='list'>".$row["CzasGryTOTAL"]."</td>
  48. <td align='center' class='list'>".$row["ZabiteZombieTOTAL"]."</td>
  49. </tr>";
  50. }
  51. $haha.gif .= "</table></tbody>";
  52. echo $haha.gif;
  53.  
  54. ?>
  55. <div class="pagi">
  56. <?php
  57.  
  58. //Pętla po stronach
  59. for($i=0;$i<$pages;$i++){
  60. //jeśli obecna strona, nie twórz linku do strony
  61. if($i*$count==$offset){
  62. echo ' '.$i.' ';
  63. }else{
  64. echo '<a href="index.php?count='.$count.'&offset='.$i.'"> '.$i.' </a>';
  65. }
  66. }
  67. ?>
nospor
To naprawde takie trudne, by wpasc na to, ze skoro jestes na drugiej stronie to zmienną $miejsce ma sie nie zaczynac od 1 tylko od liczby wynikow na poprzedniej stronie? A jak jestes na stronie 10, to $miejsce ma sie zaczynac od liczby wynikow ze wszystkich poprzednich stron?

Jesli wiec limit wynikow na stronie jest 25, to na stronie drugiej $miejsce ma sie zaczynac od 1+25*1
Na stronie 10: 1+25*9

Zapis tego w php pozostawiam juz Tobie.
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.