Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie newsów
Forum PHP.pl > Forum > PHP
Loped
Witam. Zrobiłem właśnie panel newsów. W indexie wyświetlam je wszystkie za pomocą pętli while. Bym chciał zrobić coś takiego, że wyświetla 10 najnowszych newsów, a niżej pojawia się np. "strona 1 z 2". Każdy news ma swój id.

O to kod ich wyświetlania:

  1. <?php
  2. $sql="SELECT newsy.id, DATE_FORMAT(newsy.dodano, '%e-%m-%Y %H:%i') AS utworzono,
  3.        newsy.autor, newsy.temat, newsy.tresc, newsy.userid, COUNT(lp) AS il_kom
  4.        FROM newsy
  5.        LEFT JOIN komentarze ON (komentarze.id=newsy.id)
  6.        GROUP BY newsy.id ORDER BY newsy.dodano DESC";
  7.  $query = $lacz->query($sql);
  8.  while($result = $query->fetch_assoc())
  9.  {
  10.      $result['tresc'] = strip_tags($result['tresc']);    
  11.      $result['tresc'] = BBCode($result['tresc']);
  12. echo '<center><b><div id="TYTUL"><br>'.nl2br($result['temat']).'</div></center></b>';
  13. echo '<p>'.nl2br($result['tresc']).'</p>';
  14.    echo '<p><b>Autor:</b><font color="#89b9a6"> <i><a href="profile.php?userid='.$result['userid'].'">'.$result['autor'].'</a> ('.$result['utworzono'].')</font></i></p>';
  15.    echo '<p><a href="index.php?newsid='.$result['id'].'">Komentarze: ('.$result['il_kom'].')</a></p>';
  16.  
  17.  }
  18. }
  19. ?>
Spawnm
w sql LIMIT i poszukaj w google/ na forum : stronicowanie / pager , jest tego pełno .
Loped
Mam taki kod:

  1. <?php
  2. $start = $_GET['start'];
  3. $na_stronie = 2;
  4.  
  5. $wykonaj=$lacz->query("SELECT * FROM newsy");
  6. $znaleziono=$wykonaj->num_rows;
  7. if($znaleziono>$na_stronie) {
  8.    print '<center>Strona ';
  9. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++)
  10.  print '<a href="newmsg.php?start='.($i*$na_stronie).'">'.($i+1).'</a> | ';
  11. }  
  12. print '</center>';
  13.  
  14.  $query="SELECT newsy.id, DATE_FORMAT(newsy.dodano, '%e-%m-%Y %H:%i') AS utworzono,
  15.        newsy.autor, newsy.temat, newsy.tresc, newsy.userid, COUNT(lp) AS il_kom
  16.        FROM newsy
  17.        LEFT JOIN komentarze ON (komentarze.id=newsy.id)
  18.        GROUP BY newsy.id ORDER BY newsy.dodano DESC LIMIT ".($start).",".$na_stronie."";
  19. $q = $lacz->query ($query);
  20.        while ($result = $q->fetch_assoc())
  21.        {
  22.  
  23.      $result['tresc'] = strip_tags($result['tresc']);    
  24.      $result['tresc'] = BBCode($result['tresc']);
  25. echo '<center><b><div id="TYTUL"><br>'.nl2br($result['temat']).'</div></center></b>';
  26. echo '<p>'.nl2br($result['tresc']).'</p>';
  27.    echo '<p><b>Autor:</b><font color="#89b9a6"> <i><a href="profile.php?userid='.$result['userid'].'">'.$result['autor'].'</a> ('.$result['utworzono'].')</font></i></p>';
  28.    echo '<p><a href="index.php?newsid='.$result['id'].'">Komentarze: ('.$result['il_kom'].')</a></p>';
  29.  
  30. }
  31. ?>


I aby wejść w newsy musze wpisać index.php?start=0. jak wpisze index.php to się nic nie pojawia... Jak mogę zrobić, ze jak wpiszę index.php pojawi mi się strona tak jak w index.php?start=0?
Spawnm
  1. <?php
  2. $start = ( $_GET['start'] )? $_GET['start']: 0;
  3. ?>
Loped
Dzięki. Punkt dla Ciebie ;P Jeszcze chiałbym zrobić aby podświetlało mi liczby stron na której aktualnie jestem. Np. 1|2|3|4
Spawnm
  1. <?php
  2. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++){
  3.  if($i==$_GET['start']){
  4.    echo '<b><a href="newmsg.php?start='.$i.'">'.($i+1).'</a></b> | ';
  5.  }else{
  6.    echo '<a href="newmsg.php?start='.$i.'">'.($i+1).'</a> | ';
  7.  }
  8. }
  9. ?>


a $i*$na_stronie dawaj tylko raz na gecie
Loped
Czyli gdzie te $i*$na_stronie mam dać? bo trochę tego nie rozumiem ;P
Spawnm
  1. <?php
  2. $start = ( $_GET['start'] )? $_GET['start']: 0;
  3. $na_stronie = 2;
  4. $start=$start*$na_stronie;
  5. ?>
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.