Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Złe wyświetlanie numerów wierszy
TheShadooow
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 23.10.2014

Ostrzeżenie: (0%)
-----


Witam to znowu ja. (IMG:style_emoticons/default/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. $(IMG:style_emoticons/default/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. <td align='center' class='list'>".$miejsce++."</td>
  43. <td align='center' class='list'>".$row["Punkty"]."</td>
  44. <td align='center' class='list'>".$row["Gracz"]."</td>
  45. <td align='center' class='list'>".$row["MorderstwaTOTAL"]."</td>
  46. <td align='center' class='list'>".$row["CzasGryTOTAL"]."</td>
  47. <td align='center' class='list'>".$row["ZabiteZombieTOTAL"]."</td>
  48. </tr>";
  49. }
  50. $(IMG:style_emoticons/default/haha.gif) .= "</table></tbody>";
  51.  
  52. ?>
  53. <div class="pagi">
  54. <?php
  55.  
  56. //Pętla po stronach
  57. for($i=0;$i<$pages;$i++){
  58. //jeśli obecna strona, nie twórz linku do strony
  59. if($i*$count==$offset){
  60. echo ' '.$i.' ';
  61. }else{
  62. echo '<a href="index.php?count='.$count.'&offset='.$i.'"> '.$i.' </a>';
  63. }
  64. }
  65. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 13:11