Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Newsy
Forum PHP.pl > Forum > Przedszkole
gilbo
Stworzyłem plik php wyświetlający ostatnie 10 newsów oto on:

  1. <TABLE width=\"100%\"><TR>
  2. <?php
  3. $katalog = &#092;"news\";
  4. $kat = opendir($katalog);
  5. while ($plik = readdir($kat)){
  6.  
  7. $rozszerzenie=substr($plik, strrpos($plik,'.'));
  8. if ($rozszerzenie==&#092;".txt\"){
  9. $baza[&#092;"$katalog/$plik\"]= date(\"j-m-y H:i\", filemtime($katalog.\"/\".$plik));
  10.  
  11.  
  12. }
  13. }
  14.  
  15. closedir($kat);
  16.  
  17. if ($baza<>null){
  18. arsort($baza);
  19. $g=0;
  20. while (list($nazwa,$data)=each($baza))
  21. {
  22. $g++;
  23. if($g==10)
  24. {
  25. break 1;
  26. }
  27. $plik=file($nazwa);
  28. for($i=0;$i<count($plik);$i++)
  29. {
  30. $wpis=split(&#092;"{\",$plik[$i]);
  31. echo &#092;"<TR>\";
  32. echo &#092;"<TD bgcolor='red'><STRONG>$wpis[0]</STRONG></TD>\";
  33. echo &#092;"</TR><TR>\";
  34. echo &#092;"<TD id='news'><IMG SRC='obrazy/news/$wpis[3].gif' BORDER='0' align='left'>$wpis[1]</TD>\"; 
  35. echo &#092;"</TR><TR>\";  
  36. echo &#092;"<TD align='right'>Dodał: $wpis[2] @ \".$data.\"</TD>\";
  37. echo &#092;"</TR>\";
  38. echo &#092;"<TR><TD>&nbsp;</TD></TR>\";
  39. }
  40.  
  41. }
  42. }
  43. else{
  44. echo 'Brak newsów!';
  45. }
  46. ?></TR></TABLE>


Wszystko działa i wogóle jest ok, ale chciałbym, żeby było tak:
Mam powiedzmy 9 newsów.
Na początku wyświetla się np 5 newsów, a pozostałe 4 są na innej stronie jak zrobić taki podział na strony blink.gif oto jest właśnie moje pytanie. Chciałbym uzyskać taką możliwość, aby móc wyświetlić również newsy archiwalne a nie tylko 10 ostatnich. z góry thx za pomoc! smile.gif
sf
Wpisz w szukaj - stronicowanie.
gilbo
Cytat(sf @ 2004-10-31 10:12:58)
Wpisz w szukaj - stronicowanie.

Wpisałem i dzięki za pomoc, ale niestety tam jest stronicowanie powiązane z MySQL, a ja jestem początkujący i nie kapuję jeszcze MySQL więc jeżeli mógłby mi ktoś pomóc byłbym bardzo wdzięczny!
sf
- określasz maksymalną liczbę wyświetlanych wiadomości... wszystkie pozostałe będą dostępne w archiwum.php
- określasz ile ma być wyświetlanych wiadomości na stronie, do przeczytania pozostałych zostą stworzone na dole numerki - czyli nasze stronicowanie
- używasz pętli for i wyświetlasz te numerki ;]

Przykład ostatnio stworzonej przezemnie funkcji do tego wygląda tak, niezależnie czy korzystasz z plików czy bazy danych :

  1. <?php
  2. /**
  3.  * $page - strona, na ktorej wyswietlamy linki
  4.  * $start - od ktorej pozycji mamy wyswietlac wiadomosci
  5.  * $one_page - ile wiadomosci na jednej stronie
  6.  * $quantity - calkowita ilosc wiadomosci do wyswietlenia
  7.  */
  8. function pages($start, $one_page, $quantity) {
  9. global $page;
  10.  
  11. // czy potrzebne jest stronicowanie
  12. if($one_page >= $quantity) {
  13. return;
  14. }
  15. // strzalka w lewo, wstecz
  16. if($start != 0) {
  17. echo '<a href=\"?page='. $page .'&amp;start='. ($start-$one_page) .'\">Ť</a> ';
  18. }
  19.  
  20. // numeruj strony, zaznacz na ktorej jestes
  21. for($i=0, $j=1; $i<$quantity; $i+=$one_page, $j++) {
  22. // wyswietl tylko liczbe bez linku, tyle warunkow trzeba, aby dzialalo idealnie;D
  23. if($start <= $i && $start > $i-$one_page) {
  24. echo $j.' ';
  25. }
  26. else {
  27. echo '<a href=\"?page='. $page .'&amp;start='. $i .'\">'. $j .'</a> ';
  28. }
  29. }
  30.  
  31. // strzalka w prawo, dalej
  32. if($start+$one_page < $quantity) {
  33. echo '<a href=\"?page='. $page .'&amp;start='. ($start+$one_page) .'\">ť</a>';
  34. }
  35. }
  36. ?>


&amp; - to jest znak '&', tylko w XHTML tak trzeba pisać
używaj jednego rodzaju cudzysłowia w HTML " lub '
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.