Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Numerowanie podstron z 10 newsami
Forum PHP.pl > Forum > Przedszkole
eunix
Chce coś takiego zrobić ale nie wiem jak.
Chodzi o to zeby jak na stronie głównej będzie więcej niż 10 newsów tworzy się strona i na stronie głównej pokazuje Pokaż strone 2 jeżeli będzie w bazie 30 newsów to ma pokazywać Pokaż strone 2, 3 . Cyfry oczywiście jako linki do tych podstron z newsami
Proszę o pomoc!
strife
Witam,

Poszukaj na forum pod hasłem stronnicowanie.

Za mało danych podałeś, czy dotyczy to bazy danych, plików etc. Tak czy siak podaj kawałek kodu to Ci pomożemy bo gotowego rozwiązania nie dostaniesz tongue.gif

Pozdrawiam!
PaKoS
Prosty przykładzik opierający się na danych z bazy sql,
co jest co dojdź sam albo spytaj dry.gif
[to sie nazywa pagination albo właśnie stronicowanie]

  1. <?php
  2.  
  3. $connection = mysql_connect("HOST", "LOGIN", "HASŁO") 
  4. or die ("Nie można połączyć się z bazą SQL");
  5.  
  6. $db = mysql_select_db("NAZWA_BAZY", $connection) 
  7. or die ("Nie można wybrać bazy SQL");
  8.  
  9. //Wpisz tu ile na na strone
  10. $naStronie = 4; 
  11.  
  12. if($_GET['strona']) $strona = $_GET['strona']; 
  13. else $strona = 0; 
  14.  
  15. $query = mysql_query("SELECT count(*) FROM JAKAŚ_TAM_TABELA"); 
  16. $row = mysql_fetch_array($query); 
  17. $size = $row['count(*)']; 
  18. echo "Ilosc rekordow w bazie $size, obecna strona $strona, ilosc stron ".ceil($size/$naStronie)."<br><br>"; 
  19.  
  20. $start = $strona*$naStronie; 
  21. $query = mysql_query("SELECT * FROM JAKAŚ_TAM_TABELA LIMIT $start, $naStronie"); 
  22.  
  23. while($var = mysql_fetch_array($query)) { 
  24. echo $var[0]."<br>"; 
  25. } 
  26.  
  27. echo '<br>';
  28.  
  29. if($strona!=0) echo "<a href=?strona=".($strona-1).">POPRZEDNIA</a> "; 
  30.  
  31. for($i=0; $i<ceil($size/$naStronie); $i++) { 
  32. if($strona==$i) echo " [".($i+1)."]"; 
  33. else echo " <a href=?strona=$i>(".($i+1).")</a>"; 
  34. }
  35.  
  36.  
  37. if($strona<ceil($size/$naStronie)-1) echo " <a href=?strona=".($strona+1).">NASTEPNA</a>"; 
  38.  
  39. ?>
elee
Mam problem z tym kodem, to znaczy stronnicuje, tylko nie pokazuje jak trzeba. Wyświetlam newsy po id w kolejności malejącej, to znaczy im wyższe id, tym bliżej początku wyświetlania. Podaję, jak to zrobiłam:

  1. <?php
  2.  
  3. //Wpisz tu ile na na strone
  4.  
  5. $naStronie = 5; 
  6.  
  7. if($_GET['strona']) $strona = $_GET['strona']; 
  8. else $strona = 0; 
  9.  
  10. $query = mysql_query("SELECT count(*) FROM `glowna`"); 
  11. $row = mysql_fetch_array($query); 
  12. $size = $row['count(*)']; 
  13. echo "Ilosc rekordow w bazie $size, obecna strona $strona, ilosc stron ".ceil($size/$naStronie)."<br><br>"; 
  14.  
  15. $start = $strona*$naStronie; 
  16. $query = mysql_query("SELECT * FROM `glowna` LIMIT $start, $naStronie"); 
  17.  
  18. while($var = mysql_fetch_array($query)) {
  19. //------------------------------
  20. $x = mysql_num_rows($query);
  21. do{
  22. $query=mysql_query("SELECT * FROM `glowna` WHERE id='$x'") or
  23. $select = mysql_fetch_array($query);
  24.  
  25. echo $select['tytul'];
  26. echo $select['tresc'];
  27.  
  28. $x=($x-1);
  29. }while($x!=0); 
  30. //-----------------------------
  31. }
  32.  
  33. echo '<br>';
  34. if($strona!=0) echo "<a href=?strona=".($strona-1).">POPRZEDNIA</a> "; 
  35.  
  36. for($i=0; $i<ceil($size/$naStronie); $i++) { 
  37. if($strona==$i) echo " [".($i+1)."]"; 
  38. else echo " <a href=?strona=$i>(".($i+1).")</a>"; 
  39. }
  40. if($strona<ceil($size/$naStronie)-1) echo " <a href=?strona=".($strona+1).">NASTEPNA</a>"; 
  41.  
  42.  
  43. ?>


Wygląda to tak.

Zżera mi 2 pierwsze newsy.

Co robię źle?
Guest
biggrin.gif Zrobiłam, problem był w selekcie.
jakis gosc
Cytat(PaKoS @ 2006-03-25 22:56:33)
Prosty przykładzik opierający się na danych z bazy sql,
co jest co dojdź sam albo spytaj dry.gif
[to sie nazywa pagination albo właśnie stronicowanie]

  1. <?php
  2.  
  3. $connection = mysql_connect("HOST", "LOGIN", "HASŁO") 
  4. or die ("Nie można połączyć się z bazą SQL");
  5.  
  6. $db = mysql_select_db("NAZWA_BAZY", $connection) 
  7. or die ("Nie można wybrać bazy SQL");
  8.  
  9. //Wpisz tu ile na na strone
  10. $naStronie = 4; 
  11.  
  12. if($_GET['strona']) $strona = $_GET['strona']; 
  13. else $strona = 0; 
  14.  
  15. $query = mysql_query("SELECT count(*) FROM JAKAŚ_TAM_TABELA"); 
  16. $row = mysql_fetch_array($query); 
  17. $size = $row['count(*)']; 
  18. echo "Ilosc rekordow w bazie $size, obecna strona $strona, ilosc stron ".ceil($size/$naStronie)."<br><br>"; 
  19.  
  20. $start = $strona*$naStronie; 
  21. $query = mysql_query("SELECT * FROM JAKAŚ_TAM_TABELA LIMIT $start, $naStronie"); 
  22.  
  23. while($var = mysql_fetch_array($query)) { 
  24. echo $var[0]."<br>"; 
  25. } 
  26.  
  27. echo '<br>';
  28.  
  29. if($strona!=0) echo "<a href=?strona=".($strona-1).">POPRZEDNIA</a> "; 
  30.  
  31. for($i=0; $i<ceil($size/$naStronie); $i++) { 
  32. if($strona==$i) echo " [".($i+1)."]"; 
  33. else echo " <a href=?strona=$i>(".($i+1).")</a>"; 
  34. }
  35.  
  36.  
  37. if($strona<ceil($size/$naStronie)-1) echo " <a href=?strona=".($strona+1).">NASTEPNA</a>"; 
  38.  
  39. ?>

Jeśli to możliwe to prosiłbym o napisanie co tu dopisać aby link do strony na której aktualnie jestem był nieaktywny,tzn wyświetlał się sam numer, thx z gory
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.