Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Drobna modyfikacja stronicowania
artekp999
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 2
Dołączył: 25.02.2011

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


Znalazłem w internecie skrypt stronicowania (jedyny który u mnie działa). Chciałbym jego wygląd zmodyfikować

Obecnie wygląda tak
Strony 1 2 3 itd

Chce aby wyglądało tak

Poprzednia 1 2 3 Następna
Strona 1 z 3

Proszę was o pomoc w zmodyfikowaniu poniższego kodu. Wiem ze to jest pewnie proste , ale ja dopiero uczę się podstaw PHP

  1. <?php
  2. include("polacz.php");
  3. $start = $_GET['start'];
  4. $na_stronie = 5;
  5. $query = "SELECT * FROM news LIMIT ".($start).",".$na_stronie."";
  6. $result = mysql_query ($query);
  7. while ($row = mysql_fetch_array($result))
  8. {
  9. //Wyświetlamy wpisy
  10. }
  11. $query = mysql_query("SELECT * FROM news order by id desc LIMIT ".($start).",".$na_stronie."");
  12. while($rekord = mysql_fetch_array($query))
  13. {
  14. $naz .= '<a href="news.php?id='.$rekord[0].'"><div id="TYTUL">'.$rekord[1].'</div></a><div id="AUTOR"> Autor: <b>'.$rekord[3].'</b> - '.$rekord[2].'</div><div id="TRESC">'.$rekord[4].'</div><br>';
  15. }
  16. echo '<li>'.$naz.'</li>';
  17. $wykonaj=mysql_query("SELECT * FROM news");
  18. $znaleziono=mysql_num_rows($wykonaj);
  19. if($znaleziono>$na_stronie) {
  20. print '<center>Strona ';
  21. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++)
  22. print '<a href="start.php?start='.($i*$na_stronie).'">'.($i+1).'</a> | ';
  23. }
  24. print '</center>';
  25. ?>
Go to the top of the page
+Quote Post
papryk
post
Post #2





Grupa: Zarejestrowani
Postów: 24
Pomógł: 6
Dołączył: 2.03.2011
Skąd: Wychylybyszyce :]

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


  1. if($znaleziono>$na_stronie)
  2. {
  3. $nastepna = $na_stronie+$start;
  4. $poprzednia =$start-$na_stronie;
  5. print "<center>";
  6.  
  7. if($start!=0)
  8. {
  9. print "<a href='start.php?start=$poprzednia'>Poprzednia</a> ";
  10. }
  11.  
  12. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++)
  13. {
  14. $koniec = $i*$na_stronie;
  15. print '<a href="start.php?start='.$koniec.'">'.($i+1).'</a> | ';
  16. }
  17.  
  18. if($start!=$koniec)
  19. {
  20. print "<a href='start.php?start=$nastepna'>Nastepna</a>";
  21. }
  22.  
  23. $aktualna = ($start / $na_stronie) + 1;
  24. print "<br />Strona ".$aktualna." z ".ceil($znaleziono/$na_stronie)."</center>";
  25. }


Wkleić pod 18 linijkę. Jest to działające rozwiązanie jednak, posiada pewne niedogodności. Pozdrawiam.

Ten post edytował papryk 2.03.2011, 17:31:33


--------------------
Aktualnie : Technik cyrkowiec.
Inżynier w toku...
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




To ja tylko napiszę JAK zrobić prosto stronicowanie:
1. Bierzesz liczbę wyników i ilość wyników na strone oraz dzielisz równając do najbliższej większej lub równej całkowitej (ceil), to liczba stron, czyli $pages. Lepiej ją raz wyliczyć i trzymać niż co chwilę liczyć wink.gif
2. Bierzesz i sprawdzasz czy numer strony istnieje i jest liczbą.
3. Jeśli nie to ustawiasz 1, jeśli tak to:
3a) Sprawdź czy jest większy niż liczba stron, jeśli tak to zrób przekierowanie na stronę ostatnią lub na pałę wpisz $page = $pages
3b) Sprawdź czy jest mniejsza niż 1, jeśli tak to zrób przekierowanie na stronę 1 lub na pałę wpisz $page = 1
4. Od strony 1 do $pages walnij linki a pod spodem napis
echo $page.' z '.$pages;

Wariacje są różne teraz już. Przykładowo nie wszystkie strony, ale po kilka z każdej strony aktualnej. Można torozwiązać poprze wyliczenie $start i $end dla pętli wypisującej strony. Można także dorzucić linki: Pierwsza, Poprzednia jeśli jesteśmy na stronie innej niż pierwsza albo Następna, Ostatnia gdy jesteśmy na innej niż ostatnia. Napisanie samemu takiego czegoś to kwestia może pół godziny jeśli chcemy to "wybajerzyć" o obsługę SEO-friendly linków.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
artekp999
post
Post #4





Grupa: Zarejestrowani
Postów: 118
Pomógł: 2
Dołączył: 25.02.2011

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


papryk dzięki za pomoc , o to mi właśnie chodziło
thek PHP to na razie jak dla mnie coś trudnego. Znam tylko podstawy , ale ciągle się ucze.

Temat do zamknięcia
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: 21.08.2025 - 14:01