Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie newsów.
moto0095
post 8.04.2010, 16:42:31
Post #1





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Witam. Nie wiedziałem jak zatytułować ten temat. Ale mam takie pyranie:
Mam sobie skrypt newsów oparty na plikach *.txt i komentarze wyświetlają się każdy w tabeli.
Jak zrobić (najlepiej w php) aby na stronie wyświetlało się na 15 newsów ,a jak będzie 20 to żeby "zrobiła" się strona nr.2 (np: news.php?page=1) questionmark.gifquestionmark.gif

Ten post edytował moto0095 8.04.2010, 16:42:56
Go to the top of the page
+Quote Post
MateuszS
post 8.04.2010, 16:45:17
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Poczytaj o stronnicowaniu, mnóstwo tematów na tym forum było na ten temat.


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
PiotrekM
post 8.04.2010, 16:46:34
Post #3





Grupa: Zarejestrowani
Postów: 130
Pomógł: 6
Dołączył: 20.12.2009

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


było setki razy...
http://lmgtfy.com/?q=stronicowanie+php
Go to the top of the page
+Quote Post
moto0095
post 8.04.2010, 16:49:37
Post #4





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Zaraz zobaczę

Tylko że większość tych skryptów jest na MySQL

Ten post edytował moto0095 8.04.2010, 16:47:23
Go to the top of the page
+Quote Post
tehaha
post 8.04.2010, 16:56:00
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


a dlaczego nie chcesz używać mysql?
Go to the top of the page
+Quote Post
moto0095
post 8.04.2010, 18:42:45
Post #6





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Po prostu nie czuję takie potrzeby a po za tym nie dodaję jakiejś strasznej ilości newsów i pliki w zupełności mi wystarczają smile.gif.

Właściwie to wszystkie są na bazę MySQL.
Wie ktoś jak zrobić paginację dla pliku txt w którym dane zapisują mi się tak:

  1. data dodania wpisu|nick|treść
  2. data dodania wpisu|nick|treść
  3. data dodania wpisu|nick|treść
  4. data dodania wpisu|nick|treść
  5. data dodania wpisu|nick|treść
  6. data dodania wpisu|nick|treść
  7. data dodania wpisu|nick|treść
  8. data dodania wpisu|nick|treść
  9. (...)


questionmark.gifquestionmark.gif

Albo inaczej.
Jeżeli mam skrypt :

  1. <?php
  2. $file = file("baza.txt");
  3.  
  4. $end = 10; // ilosc rekordow
  5.  
  6. foreach($file as $value) {
  7. ++$i;
  8. if($i <= $end) {
  9. $exp = explode("`",$value);
  10. echo $exp[0]."<br />".$exp[1]."<hr />";
  11. }
  12. }
  13.  
  14. ?>


który wyświetla 10 ostatnich rekordów to czy da się go przerobić aby wyświetlał po 10 na każdej stronie questionmark.gifquestionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
mortus
post 8.04.2010, 20:54:44
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Kompleksowa obsługa stronicowania danych wyciągniętych z pliku:
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. if(isset($_GET['page'])) {
  5. $page = $_GET['page'];
  6. if($page <= 0) {
  7. echo 'Invalid page number!<br />Jump to page: ';
  8. $invalidPageNumber = true;
  9. }
  10. } else {
  11. $page = 1;
  12. }
  13. $perPage = 10;
  14. $start = ($page - 1) * $perPage;
  15. $end = $page * $perPage;
  16.  
  17. if(!file_exists('filename.ext')) {
  18. echo 'File not exists!<br />';
  19. } else {
  20. $source = file('filename.ext');
  21. $numberOfLines = count($source);
  22. if($numberOfLines == 0) {
  23. echo 'There is no data!<br />';
  24. } else {
  25. $numberOfPages = ceil($numberOfLines / $perPage);
  26. if($page > $numberOfPages) {
  27. echo 'Invalid page number!<br />Jump to page: ';
  28. $invalidPageNumber = true;
  29. }
  30. if(!isset($invalidPageNumber)) {
  31. for($i = $start; $i < $end && $i < $numberOfLines; $i++) {
  32. // tutaj odpowiednio przetwarzamy dane
  33. echo $source[$i] . '<br />';
  34. }
  35. }
  36. for($i = 1; $i <= $numberOfPages; $i++) {
  37. echo ' <a href="?page=' . $i . '">' . $i . '</a> ';
  38. }
  39. }
  40. }
Go to the top of the page
+Quote Post
moto0095
post 12.04.2010, 19:55:24
Post #8





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Bardzo, bardzo ci dziękuję mortus.

Ja wiem że temat już zamknięty, ale mam taki problem ten skrypt co podał mortus wyświetla dane które się zapisują tak:
jeden
jeden
jeden

no i oczywiście nie chcę nic zmieniać tylko jak podpiąć do tego ten skrypt :
  1. // wczytanie zawartości pliku do tablicy
  2. $file = file("dane.tpl");
  3. // przechodzimy przez tablicę za pomocą pętli foreach
  4. foreach($file as $value) {
  5. // rozbijamy poszczególne linie na części
  6. $exp = explode("|",$value);
  7. // wyświetlamy rozbity tekst
  8. echo $exp[0].",".$exp[1].",".$exp[1].":)";
  9. }


tak aby czytał dane zapisane tak:
jeden|dwa|trzy
jeden|dwa|trzy
jeden|dwa|trzy
jeden|dwa|trzy


i wyświetlał je np: jeden, dwa, trzy smile.gif
questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif

questionmark.gifquestionmark.gifquestionmark.gif

questionmark.gif
Go to the top of the page
+Quote Post
mortus
post 12.04.2010, 20:03:57
Post #9





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


A co jest napisane w linii 33? Zastępujesz po prostu linię 34 takim kodem:
  1. $exp = explode("|", $source[i]);
  2. echo $exp[0] . ", " . $exp[1] . ", " . $exp[1] . ":)<br />";
A w linii 18 zamiast filename.ext wpisujesz swoją nazwę pliku, czyli dane.tpl. Próbowałeś w ogóle coś kombinować?
Go to the top of the page
+Quote Post
moto0095
post 12.04.2010, 20:31:19
Post #10





Grupa: Zarejestrowani
Postów: 247
Pomógł: 9
Dołączył: 12.03.2010

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


Tak, długo kombinowałem, ale nic nie wykombinowałem ,ale wielkie dzięki smile.gif.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:55