Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Księga / Dzilenie wyników na strony
Piniata
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.06.2007

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


Próbowałem znaleźć rozwiązanie na forum ale nie znalazłem, może źle szukałem może nie w każdym bądź razie wszystko co znalazłem nie wiele mi dawało dlatego napisze jak sytuacja wygląda u mnie.

Zrobiłem Księge Gości, która zapisuje do pliku nick, date, komentarz i adres www podany przez urzytkownika, wyniki sa wyswielane od najmlodszego jednak do szczęscia brakuje mi tylko aby wyniki dzieliły się na strony np. 20 wpisów na strone.

W taki sposób zapisywane są dane do pliku:
  1. <?php
  2. $noweDane = "<TABLE id='ksiega'><TR><TD ALIGN=LEFT id='nick'>$nick</TD></TR><TR><TD ALIGN=LEFT><p id='www2'><a href='$www' target='blank'>$www</a></TD></TR><TR><TD ALIGN=LEFT><p id='data'>$data</p></TD></TR><TR><TD ALIGN=LEFT>$wpis</TD></TR></TABLE><BR>n";
  3. ?>


Narazie taki sposób są wyświetlane dane na stronie (bez dzielenia na strony):
  1. <?php
  2. $ks=fopen('wpisy.txt', 'r');
  3. $dlugoscc=filesize('wpisy.txt');
  4. $calyplikk=fread($ks, $dlugoscc);
  5. print ($calyplikk);
  6. fclose($ks);
  7. ?>


Myślałem, że bedzie trzebać zliczać z pliku wszystkie "\n" i po 20 tworzyć nową strone albo zrobic skrypt ktory pokazywac bedzie wpisy od 1 do 20 i bedzie łatwy do zminienia by móc też wyświetlić od 20 do 40 ale nie mam bladego pojęcia jak to zrobić bo moje php leży i kwiczy. Jeśli ktoś mi pomoże będe wdzięczny. Żadnego mysql!!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Darti
post
Post #2





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Pisane z palca, mogą być błędy ale zasadę chyba wychwycisz...
  1. <?php
  2. $max_na_stronie = 20;
  3. if(isset($_GET['strona']) && is_numeric($_GET['strona'])){
  4. $strona = $_GET['strona'];
  5. } else {
  6. $strona = 1;
  7. }
  8.  
  9. $wpisy = file('wpisy.txt');
  10.  
  11. for($i=$strona*$max_na_stronie - $max_na_stronie;$i < $max_na_stronie; $i++){
  12. if(isset($wpisy[$i])){
  13. echo $wpisy[$i];
  14. }
  15. }
  16.  
  17. if($strona > 1){
  18. echo '<a href="?strona='. $strona-1 .'"> Poprzednia strona </a>';
  19. }
  20. if(count($wpisy) > $strona*$max_na_stronie){
  21. echo '<a href="?strona='. $strona+1 .'"> Następna strona </a>';
  22. }
  23. ?>


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


http://framework.vgroup.pl/expose-fab64ed3...d6f795c4bad.htm

Pisalem kiedys... proste w uzyciu


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Piniata
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 8.06.2007

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


Wielkie dzięki Darti dzielenie działa super ale odnośniki się nie robią do następnych stron. Pod 20-stym wpisem pokazuje się:

1"> Następna strona

I nie jest to odnośnikiem... pokombinuje ale mozesz titaj napisać rozwiązanie w razie gdyby ktoś też miał taki problem jak ja. Jeszcze raz wielkie dzięki.

--------EDYCJA---------
Więc poprawiłe to w te sposób:
zamieniłem:
  1. <?php
  2. if($strona > 1){
  3. echo '<a href="?strona='. $strona-1 .'"> Poprzednia strona </a>';
  4. }
  5. if(count($wpisy) > $strona*$max_na_stronie){
  6. echo '<a href="?strona='. $strona+1 .'"> Następna strona </a>';
  7. ?>


Na:
  1. <?php
  2. if($strona > 1){
  3. echo ("<a href=?strona=");
  4. echo ($strona-1);
  5. echo ("> Poprzednia strona </a>");
  6. }
  7. if(count($wpisy) > $strona*$max_na_stronie){
  8. echo ("<a href=?strona=");
  9. echo ($strona+1);
  10. echo ("> Następna strona </a>");
  11. ?>


i odnośniki działają ale na kolejnych stronach nie ma wpisów ale gdy wróce odnosnikiem na poprzednia strona to wpisy od 1 do 20 są... co mam zrobić?

Ten post edytował Piniata 9.06.2007, 08:52:14
Go to the top of the page
+Quote Post
Darti
post
Post #5





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


ahhh linijka 11, zapomniałem przemnożyć górnej granicy iteracji, powinno być tak:
  1. <?php
  2. for($i=$strona*$max_na_stronie - $max_na_stronie;$i < $strona * $max_na_stronie; $i++){
  3. ?>


Ten post edytował Darti 9.06.2007, 11:14:41


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 11:52