Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Paginacja - element jako pierwszy na kazdej stronie/podstronie
Forum PHP.pl > Forum > Przedszkole
-armind-
mam taki o to skrypt paginacjii:

  1. $link="index.php?strona=";
  2.  
  3. $zapytanie = "SELECT * FROM news ORDER by id DESC";
  4.  
  5. if(!$strona){
  6. $nr=$_GET["strona"];
  7. if($nr==0)
  8. {
  9. $nr=1;
  10. }
  11.  
  12. $strona=$nr;
  13. }
  14.  
  15.  
  16. $ile=6;
  17.  
  18. $start=($strona-1)*$ile;
  19.  
  20. $wynik = $db->query($zapytanie);
  21. $ile_rek = $wynik->num_rows;
  22.  
  23. $podstron = ceil($ile_rek/$ile);
  24.  
  25. $zapytanie.= " LIMIT $start,$ile";
  26.  
  27. $final = $db->query($zapytanie);
  28. $i=0;
  29.  
  30. while ($row = $final->fetch_assoc())
  31. {
  32. echo '<li>
  33. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>'.$row['title'].'</h2>
  34. <p>'.$row['content'].'</p>
  35. </li>';
  36.  
  37. }
  38.  
  39. <? if($strona>1)
  40.  
  41. echo ""; else echo "";
  42.  
  43. if($podstron<=10)
  44. {
  45. for ($s=1; $s<=$podstron; $s++){
  46. if ($s==$strona) echo "<span><strong>$s</strong></span>";
  47. else echo "<a href=".$link."".$s."> $s </a>";}
  48. }
  49. //jeżeli podstron więcej niż 10
  50. elseif($podstron>10)
  51. {
  52. if($strona>=6 && $strona<=$podstron-5){
  53. $wr=$strona-4;
  54. $wz=$strona+5;
  55. for ($s=$wr; $s<=$wz; $s++){
  56. if ($s==$strona) echo "<span><strong>$s</strong></span>";
  57. else echo "<a href=".$link."".$s."> $s </a>";
  58. }
  59. }
  60. else if($strona>=$podstron-5){
  61. for ($s=$podstron-9; $s<=$podstron; $s++){
  62. if ($s==$strona) echo "<span><strong>$s</strong></span>";
  63. else echo "<a href=".$link."".$s."> $s </a>";
  64. }
  65. }
  66. else{
  67. for ($s=1; $s<=10; $s++){
  68. if ($s==$strona) echo "<span><strong>$s</strong></span>";
  69. else echo "<a href=".$link."".$s."> $s </a>";}
  70. }
  71. }
  72.  
  73. if($strona<$podstron) echo""; else echo"";



rozchodzi się o takie cos:

  1. while ($row = $final->fetch_assoc())
  2. {
  3. echo '<li>
  4. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>'.$row['title'].'</h2>
  5. <p>'.$row['content'].'</p>
  6. </li>';
  7.  
  8. }



w jaki sposób mógł bym osiągnąć aby na kazdej podstronie było tak ze na poczatku news w kodzi wygląda tak:

  1. <li class="frist">
  2. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  3. <p>Tresc</p>
  4. </li>
  5. <li>
  6. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  7. <p>Tresc</p>
  8. </li>
  9. <li>
  10. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  11. <p>Tresc</p>
  12. </li>
  13. <li>
  14. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  15. <p>Tresc</p>
  16. </li>
  17. <li>
  18. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  19. <p>Tresc</p>
  20. </li>
  21.  
  22. ....kolejna podstrona:
  23.  
  24. <li class="frist">
  25. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  26. <p>Tresc</p>
  27. </li>
  28. <li>
  29. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  30. <p>Tresc</p>
  31. </li>
  32. <li>
  33. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  34. <p>Tresc</p>
  35. </li>
  36. <li>
  37. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  38. <p>Tresc</p>
  39. </li>
  40. <li>
  41. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  42. <p>Tresc</p>
  43. </li>
  44.  
  45. w tej chwili jest tak:
  46.  
  47. <li>
  48. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  49. <p>Tresc</p>
  50. </li>
  51. <li>
  52. <h2 class="title"><em><img src="images/news.png" alt="" width="121" height="137" class="alignleft" /></em>Tytuł</h2>
  53. <p>Tresc</p>
  54. </li>
  55. ...
wujek2009
Chcesz po prostu dla elementu "li" nadać klasę "first" ? Weź przed pętlą while (która jak domyślam się wykonuje wyświetlanie wyników od newsów/artykułów) dodaj takie coś:
  1. # find:
  2. while ($row = $final->fetch_assoc())
  3.  
  4. # replace with:
  5. $loop_id = 1;
  6. while ($row = $final->fetch_assoc())


i teraz:
  1. # find:
  2. echo '<li>
  3.  
  4. # replace with:
  5. echo '<li'. ( ($loop_id++) == 1 ? ' class="first"' : NULL ) .'>


PS. Pisane z palca, za literówki w kodzie przepraszam.
Ogólnie zmienna $loop_id będzie rosła wraz z każdym powtórzeniem się pętli while (dzięki zapisowi: ++ przy zmiennej) - wykrywasz numer pętli i ustawiasz warunek :-)
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.