Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z wyswietlaniem wpisow na stronie
Forum PHP.pl > Forum > Przedszkole
buska1992
  1. <?php
  2. include_once('config.php');
  3. //musimy wyciągnąć z bazy informacje o ilości postów ogólnie do wyliczenia ilości stron
  4. //celowo nie kożystamy z SQL_CALC_FOUND_ROWS, bo zależy nam na zabezpieczeniu się przed wś****skimi
  5. //użytkownikami, którzy zmodyfikują url i będą chcieli wejść na stronę jaka nie istnieje
  6. $query = "SELECT COUNT(*) as all_posts FROM wpisy";
  7. $result = mysql_query($query) or die (mysql_error());
  8. $row = mysql_fetch_array($result);
  9. extract($row);
  10.  
  11. $onpage = 5; //ilość newsów na stronę
  12. $navnum = 7; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
  13. $allpages = ceil($all_posts/$navnum); //wszysttkie strony to zaokrąglony w górę iloraz wszystkich postów i ilości postów na stronę
  14.  
  15. //sprawdzamy poprawnośc przekazanej zmiennej $_GET['page'] zwróć uwage na $_GET['page'] > $allpages
  16. if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
  17. $page = 1;
  18. }else{
  19. $page = $_GET['page'];
  20. }
  21. $limit = ($page - 1) * $onpage; //określamy od jakiego newsa będziemy pobierać informacje z bazy danych
  22.  
  23. $query = "SELECT id FROM wpisy ORDER BY id DESC LIMIT $limit, $onpage";
  24. $result = mysql_query($query) or die (mysql_error());
  25.  
  26.  
  27.  
  28. while($row = mysql_fetch_array($result)){
  29. echo '<span style="display: none;">'.$row['id'].'</span><div id="wpis"><div class="head"><b>'. $row['nick'] . '</b> dodał/a:<br /></div><div class="tresc_wpisu">'.$row['comment']. '<br /></div></div><br />';
  30. }
  31.  
  32. //zabezpieczenie na wypadek gdyby ilość stron okazała sie większa niż ilośc wyświetlanych numerów stron
  33. if($navnum > $allpages){
  34. $navnum = $allpages;
  35. }
  36.  
  37. //ten fragment może być trudny do zrozumienia
  38. //wyliczane są tu niezbędne dane do prawidłowego zbudowania pętli
  39. //zmienne są bardzo opisowę więc nie będę ich tłumaczyć
  40. $forstart = $page - floor($navnum/2);
  41. $forend = $forstart + $navnum;
  42.  
  43. if($forstart <= 0){ $forstart = 1; }
  44.  
  45. $overend = $allpages - $forend;
  46.  
  47. if($overend < 0){ $forstart = $forstart + $overend + 1; }
  48.  
  49. //ta linijka jest ponawiana ze względu na to, że $forstart mogła ulec zmianie
  50. $forend = $forstart + $navnum;
  51. //w tych zmiennych przechowujemy numery poprzedniej i następnej strony
  52. $prev = $page - 1;
  53. $next = $page + 1;
  54.  
  55. //nie wpisujemy "sztywno" nazwy skryptu, pobieramy ja od serwera
  56. $script_name = $_SERVER['SCRIPT_NAME'];
  57.  
  58. //ten fragment z kolei odpowiada za wyślwietenie naszej nawigacji
  59. if($page > 1) echo "<a href=\"".$script_name."?page=".$prev."\">Poprzednia</a>";
  60. if ($forstart > 1) echo "<a href=\"".$script_name."?page=1\">[1]</a>";
  61. if ($forstart > 2) echo "...";
  62. for($forstart; $forstart < $forend; $forstart++){
  63. if($forstart == $page){
  64. echo " ";
  65. }else{
  66. echo " ";
  67. }
  68. echo "<a href=\" ".$script_name."?page=".$forstart."\">[".$forstart."]</a>";
  69. }
  70. if($forstart < $allpages) echo "...";
  71. if($forstart - 1 < $allpages) echo "<a href=\"".$script_name."?page=".$allpages."\">[".$allpages."]</a>";
  72. if($page < $allpages) echo " <a href=\"".$script_name."?page=".$next."\">Następna</a>";
  73.  
  74. /*
  75.   include('config.php');
  76.   $sel = "SELECT `id`,`nick`,`comment` FROM `wpisy` ORDER BY `id` DESC";
  77.   $do = mysql_query($sel);
  78.   $s = mysql_fetch_row($do);
  79.   //$liczba_wpisow = 5;
  80.   //while ($s <= $liczba_wpisow)
  81.   while ($s = 5)
  82.   {
  83.   echo '<span style="display: none;">'. $s[0] .'</span><div id="wpis"><div class="head"><b>'. $s[1] . '</b> dodał/a:<br /></div><div class="tresc_wpisu">'.$s[2]. '<br /></div></div><br />';
  84.   }
  85.  
  86. ?>


I sie nie wyswietlaja wpisy wszystko dziala tylko jest puste pole gdzie powinnein byc wpis z trescia ;/
nospor
SELECT id FROM
Pobierasz tylko ID więc nie rozumiem czemu się dziwisz ze nic innego nie masz....
CuteOne
Nie zdefiniowałeś zmiennej $all_posts
buska1992
Cytat(nospor @ 10.11.2012, 20:58:14 ) *
SELECT id FROM
Pobierasz tylko ID więc nie rozumiem czemu się dziwisz ze nic innego nie masz....


Czyli jak ma to zrobic? wstydnis.gif
Nie ogarniam MYSQL troche to trudne to dla mnie :/
Dominis
Pewnie trzeba pobrac to co chcesz wyswietlic

  1. $query = "SELECT id FROM wpisy ORDER BY id DESC LIMIT $limit, $onpage";


  1. echo '<span style="display: none;">'.$row['id'].'</span><div id="wpis"><div class="head"><b>'. $row['nick'] . '</b> dodał/a:<br /></div><div class="tresc_wpisu">'.$row['comment']. '<br /></div></div><br />';


czyli:
  1. $query = "SELECT id, nick, comment FROM wpisy ORDER BY id DESC LIMIT $limit, $onpage";


no i tak jak wyzej pisali, $all_posts

  1. $all_posts = $row['all_posts']
buska1992
Tak juz mi sie udalo.
Dziekuje slicznie za pomoc smile.gif
Tylko teraz mi nie czyta polskich znakow....
wpaski
dodaj przed zapytaniem gdzie powinny być polskie znaki, a najlepiej od razu po połączeniu z bazą:
  1. mysql_query ('SET NAMES utf-8');


ew. może nie być to UTF-8 zależy co masz w bazie, moze być to latin2
buska1992
Cytat(wpaski @ 10.11.2012, 21:40:25 ) *
dodaj przed zapytaniem gdzie powinny być polskie znaki, a najlepiej od razu po połączeniu z bazą:
  1. mysql_query ('SET NAMES utf-8');


ew. może nie być to UTF-8 zależy co masz w bazie, moze być to latin2


Ok, dziala dzieki



  1. <div id="templatemo_content">
  2. <div class="all">
  3.  
  4. <div class="title">
  5.  
  6. <h1>Księga Gości</h1>
  7.  
  8. </div>
  9.  
  10. <div class="add">
  11.  
  12. <h2>Dodaj:</h2>
  13.  
  14. <br />
  15.  
  16. <form action="add.php" method="POST">
  17.  
  18. <label><b>Nick:</b><br /></label>
  19. <input type="text" name="nick" />
  20. <label><br /><br /><b>Komentarz:<br /></b></label>
  21. <textarea name="com" cols="40" rows="4" class="nr1"></textarea>
  22. <!--<label><br /><br />
  23. <b>Dostępne BBCode:</b><br />
  24. <b> - pogrubienie</b><br />
  25. <i> - pochylenie</i><br />
  26. <u> - podkreślenie</u>
  27. <br /><br /></label>-->
  28. <input type="submit" name="add" value="Dodaj komentarz" class="nr1"><br>
  29.  
  30. </form>
  31.  
  32. <br />
  33.  
  34. </div>
  35. <!--Istniejąca wpisy start-->
  36. <div class="show">
  37.  
  38. <h2>Wpisy:</h2>
  39.  
  40. <br />
  41.  
  42. <?php
  43. include_once('config.php');
  44. //musimy wyciągnąć z bazy informacje o ilości postów ogólnie do wyliczenia ilości stron
  45. //celowo nie kożystamy z SQL_CALC_FOUND_ROWS, bo zależy nam na zabezpieczeniu się przed wś****skimi
  46. //użytkownikami, którzy zmodyfikują url i będą chcieli wejść na stronę jaka nie istnieje
  47. $query = "SELECT COUNT(*) as all_posts FROM wpisy";
  48. $result = mysql_query($query) or die (mysql_error());
  49. $row = mysql_fetch_array($result);
  50. extract($row);
  51.  
  52. $onpage = 5; //ilość newsów na stronę
  53. $navnum = 7; //ilość wyświetlanych numerów stron, ze względów estetycznych niech będzie to liczba nieparzysta
  54. $allpages = ceil($all_posts/$navnum); //wszysttkie strony to zaokrąglony w górę iloraz wszystkich postów i ilości postów na stronę
  55.  
  56. //sprawdzamy poprawnośc przekazanej zmiennej $_GET['page'] zwróć uwage na $_GET['page'] > $allpages
  57. if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
  58. $page = 1;
  59. }else{
  60. $page = $_GET['page'];
  61. }
  62. $limit = ($page - 1) * $onpage; //określamy od jakiego newsa będziemy pobierać informacje z bazy danych
  63.  
  64. $query = "SELECT id, nick, comment FROM wpisy ORDER BY id DESC LIMIT $limit, $onpage";
  65. $result = mysql_query($query) or die (mysql_error());
  66.  
  67.  
  68.  
  69. while($row = mysql_fetch_array($result)){
  70. echo '<span style="display: none;">'.$row['id'].'</span><div id="wpis"><div class="head"><b>'. $row['nick'] . '</b> dodał/a:<br /></div><div class="tresc_wpisu">'.$row['comment']. '<br /></div></div><br />';
  71. }
  72.  
  73. //zabezpieczenie na wypadek gdyby ilość stron okazała sie większa niż ilośc wyświetlanych numerów stron
  74. if($navnum > $allpages){
  75. $navnum = $allpages;
  76. }
  77.  
  78. //ten fragment może być trudny do zrozumienia
  79. //wyliczane są tu niezbędne dane do prawidłowego zbudowania pętli
  80. //zmienne są bardzo opisowę więc nie będę ich tłumaczyć
  81. $forstart = $page - floor($navnum/2);
  82. $forend = $forstart + $navnum;
  83.  
  84. if($forstart <= 0){ $forstart = 1; }
  85.  
  86. $overend = $allpages - $forend;
  87.  
  88. if($overend < 0){ $forstart = $forstart + $overend + 1; }
  89.  
  90. //ta linijka jest ponawiana ze względu na to, że $forstart mogła ulec zmianie
  91. $forend = $forstart + $navnum;
  92. //w tych zmiennych przechowujemy numery poprzedniej i następnej strony
  93. $prev = $page - 1;
  94. $next = $page + 1;
  95.  
  96. //nie wpisujemy "sztywno" nazwy skryptu, pobieramy ja od serwera
  97. $script_name = $_SERVER['SCRIPT_NAME'];
  98.  
  99. //ten fragment z kolei odpowiada za wyślwietenie naszej nawigacji
  100. if($page > 1) echo "<a href=\"".$script_name."?page=".$prev."\">Poprzednia</a>";
  101. if ($forstart > 1) echo "<a href=\"".$script_name."?page=1\">[1]</a>";
  102. if ($forstart > 2) echo "...";
  103. for($forstart; $forstart < $forend; $forstart++){
  104. if($forstart == $page){
  105. echo " ";
  106. }else{
  107. echo " ";
  108. }
  109. echo "<a href=\" ".$script_name."?page=".$forstart."\">[".$forstart."]</a>";
  110. }
  111. if($forstart < $allpages) echo "...";
  112. if($forstart - 1 < $allpages) echo "<a href=\"".$script_name."?page=".$allpages."\">[".$allpages."]</a>";
  113. if($page < $allpages) echo " <a href=\"".$script_name."?page=".$next."\">Następna</a>";
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. /* include('config.php');
  131.   $sel = "SELECT `id`,`nick`,`comment` FROM `wpisy` ORDER BY `id` DESC";
  132.   $do = mysql_query($sel);
  133. $s = mysql_fetch_row($do);
  134. //$liczba_wpisow = 5;
  135.   //while ($s <= $liczba_wpisow)
  136.   while ($s = 5)
  137.   {
  138.   echo '<span style="display: none;">'. $s[0] .'</span><div id="wpis"><div class="head"><b>'. $s[1] . '</b> dodał/a:<br /></div><div class="tresc_wpisu">'.$s[2]. '<br /></div></div><br />';
  139.   }
  140.  
  141. ?>
  142. </div>
  143. <!--Istniejąca wpisy stop-->
  144.  
  145. </div>
  146. </div> <!-- end of content -->
  147.  
  148. </div> <!-- end of wrapper -->
  149.  
  150. <?php
  151. include("footer.php");
  152. ?>
  153. </body>
  154.  
  155. </html>


Gdzie jest jeszcze blad, bo nie czyta mi stopki :/
Damonsson
Nieśmiało stawiałbym na linię 151 czarodziej.gif
buska1992
Cytat(Damonsson @ 11.11.2012, 20:48:49 ) *
Nieśmiało stawiałbym na linię 151 czarodziej.gif


Na innych plikach dziala...
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.