Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + mysql]Zmiana wyświetlanej zawartości...
Forum PHP.pl > Forum > Przedszkole
Vitoss
Witam

Jestem raczej zielony w php i MySQL, zatem mam do Was prośbę. Załączam jeden plik ze skryptu, z którego korzystam i chciałbym w nim zmienić jedną rzecz - mianowicie wynik z bazy danych (artykuły) wyświetlany jest rosnąca - tj. najstarsze artykuły są na samej górze na pierwszej stronie, a żeby zobaczyć nowe, to trzeba przejść na ostatnią stronę... Chciałbym, aby było odwrotnie - tj. żeby najnowsze artykuły wyświetlane były od razu na samej górze, na pierwszej stronie, a na samym końcu były najstarsze artykuły. Bardzo Was proszę, pomóżcie mi zmodyfikować ten kod, bo już się z nim męczę przez dłuższy czas i bez rezultatu sad.gif

  1. <?php
  2.  
  3. $id = htmlspecialchars(intval(@$_GET['id']));
  4. if (empty($id))
  5. {
  6.     die ("<p class='error'>No ID Entered</p>");
  7. }
  8. $result = @mysql_query("SELECT name,description FROM cats where id='$id'");
  9.  
  10. if (!$result)
  11. {
  12.     die('<p class="error">Error performing query: ' .
  13.     mysql_error() . '</p>');
  14. }
  15.  
  16. $row = mysql_fetch_array($result);
  17.  
  18. if (empty($row))
  19. {
  20.     die ("<p class='error'>No Such Catagory</p>");
  21. }
  22.  
  23. echo "<h2>{$row['name']}</h2>";
  24. echo "<p style='color: #696969'>{$row['description']}</p>";
  25.  
  26. if(!isset($_GET['page'])){
  27.     $page = 1;
  28. } else {
  29.     $page = htmlspecialchars((int)$_GET['page']);
  30. }
  31.  
  32. $max_results = 50;
  33.  
  34. $from = (($page * $max_results) - $max_results);
  35.  
  36. $sql = mysql_query("SELECT a.id,a.name,a.views,COUNT(c.id) as comments FROM articles a LEFT JOIN comments c ON (a.id=c.articleid) WHERE a.catid='$id' GROUP BY id LIMIT $from, $max_results");
  37.  
  38. $cat = '';
  39. if (!mysql_num_rows($sql))
  40. {
  41.     $cat = "<tr><td colspan='4'><em>Nie ma artykułów w tej kategorii</em></td></tr>";
  42. }
  43. while ($row = mysql_fetch_array($sql))
  44. {
  45.     $cat .= "<tr><td><a href='fun{$row['id']}' title='Zobacz: {$row['name']}'>{$row['name']}</a></td><td>{$row['views']}</td><td>{$row['comments']}</td></tr>";
  46. }
  47.  
  48. $total_results = mysql_result(mysql_query("SELECT COUNT(*) as Num FROM articles where catid='$id'"),0);
  49.  
  50. $total_pages = ceil($total_results / $max_results);
  51.  
  52. $pag = "<p style='text-align: center'>Strony<br />";
  53.  
  54. if($page > 1){
  55.     $prev = ($page - 1);
  56.     $pag .= "<a href='index.php?func=cat&amp;id={$id}&amp;page={$prev}' title='Poprzednia strona'>&lt;&lt;</a> ";
  57. }
  58.  
  59. for($i = 1; $i <= $total_pages; $i++){
  60.     if(($page) == $i){
  61.         $pag .= "<strong>$i</strong> ";
  62.     } else {
  63.         $pag .= "<a href='index.php?func=cat&amp;id={$id}&amp;page={$i}' title='IdĽ do strony: {$i}'>{$i}</a> ";
  64.     }
  65. }
  66.  
  67. if($page < $total_pages){
  68.     $next = ($page + 1);
  69.     $pag .= "<a href='index.php?func=cat&amp;id={$id}&amp;page={$next}' title='Następna strona'>&gt;&gt;</a>";
  70. }
  71. $pag .= '</p>';
  72.  
  73. ?>
  74. <table width="100%" summary="Lista zawartości tej kategorii.">
  75. <tr><th align="left">Artykuł</th><th align="left">Obejrzeń</th><th align="left">Komentarzy</th></tr>
  76. <? echo $cat; ?>
  77. </table>
  78. <? echo $pag; ?>
piotrekkr
  1. <?php
  2. $sql = mysql_query("SELECT a.id,a.name,a.views,COUNT(c.id) as comments FROM articles a LEFT JOIN comments c ON (a.id=c.articleid) WHERE a.catid='$id' GROUP BY id ORDER BY a.id DESC LIMIT $from, $max_results");
  3. ?>

tak mi sie wydaje ze powinno dzialac ale niekoniecznie jesli pole a.id nie jest auto increment :/ przydaloby sie zeby bylo pole z data dodania artykulu to by mozna bylo zrobic ORDER BY a.data DESC a nie opierac sie o id smile.gif
Vitoss
Działa! Bardzo dziękuję! biggrin.gif
piotrekkr
nie ma sprawy biggrin.gif polecam lekture manuala php i mysql smile.gif
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.