Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podział komentarzy na strony
Forum PHP.pl > Forum > PHP
JaloSS
Witam

Nie jestem jeszcze dobry w PHP ale juz cos rozumiem. Otoz udalo mi sie napisac skrypt komentarzy ktory zapisuje komentarze w pliku txt. Do tego skryptu potrzebowal bym funkcje ktora podzieli mi wszystkie komentarze na strony np. po 10 na stronie. Szukalem w google lecz kiedy cos znalazlem to nieudalo mi sie polaczyc tego z moim skryptem

Prosze o pomoc.

A oto skrypt:
Kod
<?

$plik = "komentarze.txt";

$imie = $_POST['imie'];
$tresc = $_POST['tresc'];
if ($tresc && $imie)
  {

  $tresc = ereg_replace("<","&lt;", $tresc);
  $tresc = ereg_replace(">","&gt;", $tresc);
  $tresc = ereg_replace("\n", "<BR>", $tresc);

  $wpis = "<DIV ID='kom'>".date("d.m.Y")."&nbsp; g. ".date("H.i")."</I><B> $imie </B>napisał/a:</DIV><BR><I> $tresc </I><BR><BR>\n";
  $file = fopen($plik, "r+");
  $wpis=$wpis.fread($file, filesize($plik));
  rewind($file);
  flock($file, 2);
  fwrite($file, $wpis);
  flock($file, 3);
  fclose($file);
  }
else  if(($imie=="" && $tresc))
  {
echo '<script TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
alert("Nie podpisałeś/aś się!");
-->
</SCRIPT>';
  }
else if(($tresc=="" && $imie))
  {
echo '<script TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
alert("Nie wpisałeś/aś się!");
-->
</SCRIPT>';
  }

$pokaz=file_get_contents("komentarze.txt");
echo "$pokaz";


?>
kantek
Możesz zrobić tak:
w pliku z opiniami każdą z nich oddzielać unikalnym ciągiem
(przy zapisie dodwaj np. '+a+')

Otrzymasz:
opinia1
+a+
opinia2
+a+
opinia3
+a+

$pokaz to string który zamienisz na tablice
(przy okazji echo $pokaz; - możesz pominąć cudzysłowy)

  1. <?php
  2. $tablica = explode("+a+", $pokaz); //manual
  3.  
  4. //i teraz masz
  5. $tablica[0] - opinia1
  6. $tablica[1] - opinia2
  7. $tablica[2] - opinia3 itd.
  8. ?>


w pętli robisz sobie warunek żeby wyświetlało (0-9 , 10-19, 20-29)

nr stron przekazujesz w get np. GET['nr_strony'];

strony [1][2][3] gdzie to są linki np. index.php?nr_strony=1

ile masz stron $ile = ceil (count($tablica) / 10);

czyli np.
  1. <?php
  2. $i = ($_GET['nr_strony']-1)*10;
  3. $end = $i+10;
  4.  
  5. for($i; $i<$end; $i++){
  6.    echo $tablica[$i].'<br /> ';
  7. }
  8. ?>


no i tam dajesz oczywiście warunki jak mniej niz 10 to nie stronicuje


Pozdrawiam
korro
Nie podoba mi się ten skrypt.
Nie podoba mi się przechowywanie znaczników w pliku komentarzy.
Pomijając to wszystko, stronicowanie komentarzy w tych warunkach będzie wyglądało tak:
  1. <?php
  2. ...
  3. ...
  4. $pokaz=file_get_contents("komentarze.txt");
  5. $pokaz = explode("\n",$pokaz);
  6.  
  7. $comments_on_page = 10;
  8. $offset;
  9. if (isset($_GET['offset'])) $offset = $_GET['offset']-1;
  10. else $offset = 0;
  11.  
  12. for ($i = $offset*$comments_on_page; $i < $comments_on_page+($offset*$comments_on_page); $i++) {
  13.    echo $pokaz[$i];
  14. }
  15. if (sizeof($pokaz) > $comments_on_page) {
  16.    for ($i=1; $i <=ceil((sizeof($pokaz)-1)/$comments_on_page); $i++ ) {
  17.        echo "<a href=\"$_SERVER[PHP_SELF]?offset=$i\">$i</a>";
  18.    }
  19. }
  20. ?>
JaloSS
Skorzystalem z pomocy Korro wielkie dzieki tylko jeszcze male pytanko mam. Jak pokazaly mi sie na dole numery stron to jak zrobic zeby byly one oddzielone bo teraz linki stron sa jedna obok drugiej np. 123 a chodzi mi o to np. 1,2,3 Da sie cos takiego zrobic?
korro
  1. <?php
  2. echo "<a href=\"$_SERVER[PHP_SELF]?offset=$i\">$i</a>";
  3. ?>

Tu tworzone są linki, możesz je formatować dowolnie.
Odstęp można zrobić wstawiając spację.
  1. <?php
  2. echo "<a href=\"$_SERVER[PHP_SELF]?offset=$i\">$i </a>";
  3. ?>
JaloSS
Dobra wielkie dzieki sam przed chwila na to wpadlem. Wielkie dzieki za pomoc.

Pozdro
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.