Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie rekordów z MySQL
Forum PHP.pl > Forum > PHP
Dzimbo
Otóż jestem w trakcie tworzenia strony prezentującej informacje o serialu Dr. House i chcę aby na każdej podstronie wyświetlało się po pięć odcinków tak samo jak liście po prawej. To link do strony: http://89.76.185.92/house/?sezon=1 , a to kod:
  1. <?php
  2. include('naglowek.php');
  3. if(!isset($_GET['sezon'])) {
  4. include('index1.php');
  5. } else {
  6. echo '<div id="menu">'.PHP_EOL;
  7. echo '<h4>Lista odcinków:</h4>'.PHP_EOL;
  8. }
  9. $i = 1;
  10. while($i <= 5) {
  11. if($i == 1) {
  12. $i56 = 5;
  13. } elseif($i == 2) {
  14. $i56 = 10;
  15. } elseif($i == 3) {
  16. $i56 = 15;
  17. } elseif($i == 4) {
  18. $i56 = 20;
  19. } elseif($i == 5) {
  20. $i56 = 25;
  21. }
  22. $i5 = $i * 5;
  23. $i55 = $i5 - 5;
  24. $i551 = $i55 + 1;
  25. $sql = "SELECT * FROM episodes WHERE id_season='{$_GET['sezon']}' LIMIT $i55, $i56;";
  26. $result1 = mysql_query($sql);
  27. $numrows_comm = mysql_num_rows($result1);
  28. if($numrows_comm > 0) {
  29. echo '<h5';
  30. if(($_GET['podstrona'] == $i) OR (!isset($_GET['podstrona']))) {
  31. echo ' class="active"';
  32. }
  33. echo '><a href="?sezon='.$_GET['sezon'].'&podstrona='.$i.'">';
  34. if($i == 1) {
  35. echo 'Podstrona pierwsza';
  36. } elseif($i == 2) {
  37. echo 'Podstrona druga';
  38. } elseif($i == 3) {
  39. echo 'Podstrona trzecia';
  40. } elseif($i == 4) {
  41. echo 'Podstrona czwarta';
  42. } elseif($i == 5) {
  43. echo 'Podstrona piąta';
  44. }
  45. echo ':</a></h5>'.PHP_EOL;
  46. echo '<ol start="'.$i551.'"';
  47. if(($_GET['podstrona'] == $i) OR (!isset($_GET['podstrona']))){
  48. echo ' class="active"';
  49. }
  50. echo '>'.PHP_EOL;
  51. while($row = mysql_fetch_assoc($result1)) {
  52. echo '<li><a href="?sezon='.$_GET['sezon'].'&podstrona='.$i.'#'.$row['id'].'.'.$row['name'].'">'.$row['name'].'</a></li>'.PHP_EOL;
  53. }
  54. echo '</ol>'.$i56.PHP_EOL;
  55. }
  56. $i++;
  57. }
  58. echo '</div>';
  59. if($_GET['sezon']) {
  60. echo '<div id="content">';
  61. echo '<h1>Sezon '.$_GET['sezon'].'.</h1>';
  62. }
  63. if(!isset($_GET['podstrona']) AND ($_GET['sezon'])) {
  64. $sql = "SELECT * FROM seasons WHERE id='{$_GET['sezon']}'";
  65. $results = mysql_query($sql);
  66. while($row = mysql_fetch_assoc($results)) {
  67. echo '<div id="left">'.$row['info'].'</div>';
  68. }
  69. } elseif(($_GET['sezon']) AND ($_GET['podstrona'])) {
  70.  
  71. include('mould/limit.php');
  72. }
  73.  
  74. $i = 1;
  75. while($i <= 24) {
  76. if($i == 1) {
  77. $i56 = 5;
  78. } elseif($i == 2) {
  79. $i56 = 10;
  80. } elseif($i == 3) {
  81. $i56 = 15;
  82. } elseif($i == 4) {
  83. $i56 = 20;
  84. } elseif($i == 5) {
  85. $i56 = 25;
  86. }
  87.  
  88. $i5 = $i * 5;
  89. $i55 = $i5 - 5;
  90. $i551 = $i55 + 1;
  91.  
  92. // Ilość odcinków w sezonie
  93. $sezon = addslashes($_GET['sezon']);
  94. $sql = 'SELECT COUNT(*) AS count FROM episodes WHERE id_season=\''.$sezon.'\'';
  95. $query = mysql_query($sql);
  96. $row = mysql_fetch_assoc($query);
  97. $odcinkow = $row['count'];
  98.  
  99. if($_GET['podstrona'] == $i) {
  100. $sql = "SELECT * FROM episodes WHERE id_season='{$sezon}' LIMIT $i55 , $i56;";
  101. $result = mysql_query($sql);
  102. $numrows_comm = mysql_num_rows($result);
  103. while($row = mysql_fetch_assoc($result)) {
  104. if($row['id'] < 10) {
  105. $img = '0'.$row['id'];
  106. } else {
  107. $img = $row['id'];
  108. }
  109. echo '<dl>'.PHP_EOL;
  110. echo '<dt><a name="'.$row['id'].'.'.$row['name'].'">'.$row['id'].'. '.$row['name'].'</a></dt>'.PHP_EOL;
  111. echo '<dd><a class="lightbox" href="images/episodes/'.$row['id_season'].'x'.$img.'.png" rel="lightbox[roadtrip]" title="'.$row['name'].'"><img src="images/episodes/thumbs/'.$row['id_season'].'x'.$img.'.png" title="Kliknj, aby powiększyć obrazek" alt="'.$row['name'].'"/></a></dd>'.PHP_EOL;
  112. echo '<dd><span class="bold">Polska nazwa odcinka:</span> '.$row['polish_name'].'</dd>'.PHP_EOL;
  113. echo '<dd><span class="bold">Odcinek numer:</span> '.$row['id'].'</dd>'.PHP_EOL;
  114. echo '<dd><span class="bold">Reżyseria:</span> '.$row['direction'].'</dd>'.PHP_EOL;
  115. echo '<dd><span class="bold">Scenariusz:</span> '.$row['written_by'].'</dd>'.PHP_EOL;
  116. echo '<dd><span class="bold">Data premiery w Polsce:</span> '.strftime('%e %B %Y(%A)', strtotime($row['poland_premiere'])).'</dd>'.PHP_EOL;
  117. echo '<dd><span class="bold">Data premiery w USA:</span> '.strftime('%e %B %Y(%A)', strtotime($row['usa_premiere'])).'</dd>'.PHP_EOL;
  118. echo '<dd><span class="video">Oglądaj Online:</span> <a target="_blank" href="http://www.megavideo.com/?v='.$row['online'].'" title="Oglądaj na MegaVideo">MegaVideo.com</a></dd>'.PHP_EOL;
  119. echo '<dd><div class="linia"></div></dd>'.PHP_EOL;
  120. echo '<dd><p title="Opis">'.$row['description'].'&hellip;</p></dd>'.PHP_EOL;
  121. echo '</dl>'.$i55.$i56.PHP_EOL;
  122. }
  123. }
  124. $i++;
  125. }
  126. if($_GET['podstrona']) {
  127. $strona = $_GET['podstrona'] - 1;
  128. echo '<ul id="navigation">'.PHP_EOL;
  129. if(!isset($_GET['podstrona'])) {
  130. } else {
  131. echo '<li id="previous"><a href="?sezon='.$_GET['sezon'];
  132. if($strona > 0) {
  133. echo '&podstrona='.$strona;
  134. }
  135. echo '" title="';
  136. if($strona == 0) {
  137. echo 'Informacje o sezonie';
  138. } elseif($strona == 1) {
  139. echo 'Podstrona pierwsza';
  140. } elseif($strona == 2) {
  141. echo 'Podstrona druga';
  142. } elseif($strona == 3) {
  143. echo 'Podstrona trzecia';
  144. } elseif($strona == 4) {
  145. echo 'Podstrona czwarta';
  146. } elseif($strona == 5) {
  147. echo 'Podstrona piąta';
  148. }
  149. echo '">&laquo; ';
  150. if ($strona == 0) {
  151. echo 'Informacje o sezonie';
  152. } else {
  153. echo 'Poprzednie odcinki';
  154. }
  155. echo '</a></li>'.PHP_EOL;
  156. }
  157. $strona = $_GET['podstrona'];
  158. define('ILOSC_ODCINKOW_NA_STRONIE', 5);
  159. $stron = ceil($odcinkow / ILOSC_ODCINKOW_NA_STRONIE);
  160. if($stron != $strona) {
  161. echo '<li id="next"><a href="';
  162. echo '?sezon='.$_GET['sezon'].'&podstrona='.($strona+1);
  163. echo '" title="';
  164. if($strona == 0) {
  165. echo 'Informacje o sezonie';
  166. } elseif($strona == 1) {
  167. echo 'Podstrona pierwsza';
  168. } elseif($strona == 2) {
  169. echo 'Podstrona druga';
  170. } elseif($strona == 3) {
  171. echo 'Podstrona trzecia';
  172. } elseif($strona == 4) {
  173. echo 'Podstrona czwarta';
  174. } elseif($strona == 5) {
  175. echo 'Podstrona piąta';
  176. }
  177. echo '">';
  178. echo 'Następne odcinki';
  179. echo ' &raquo;</a></li>'.PHP_EOL;
  180. }
  181. echo '</ul>'.PHP_EOL;
  182. } elseif($_GET['sezon']) {
  183. echo '<ul id="navigation">'.PHP_EOL;
  184. echo '<li id="next"><a href="?sezon='.$_GET['sezon'].'&podstrona=1" title="Iformacje o sezonie">Przejdź do odcników &raquo;</a></li>'.PHP_EOL;
  185. echo '</ul>'.PHP_EOL;
  186. }
  187. include('mould/footer.php');
  188. ?>
yevaud
jak na liscie po prawej ?

  1. $sql = "SELECT * FROM episodes WHERE id_season='{$_GET['sezon']}' LIMIT $i55, $i56;";

SQL injection
Dzimbo
Jest tak:
  1. if($_GET['podstrona'] == $i) {
  2. $sql = "SELECT * FROM episodes WHERE id_season='{$sezon}' LIMIT $i55 , $i56;";
  3. $result = mysql_query($sql);
  4. $numrows_comm = mysql_num_rows($result);
  5. while($row = mysql_fetch_assoc($result)) {
  6. if($row['id'] < 10) {
  7. $img = '0'.$row['id'];
  8. } else {
  9. $img = $row['id'];
  10. }
  11. echo '<dl>'.PHP_EOL;
  12. echo '<dt><a name="'.$row['id'].'.'.$row['name'].'">'.$row['id'].'. '.$row['name'].'</a></dt>'.PHP_EOL;
  13. echo '<dd><a class="lightbox" href="images/episodes/'.$row['id_season'].'x'.$img.'.png" rel="lightbox[roadtrip]" title="'.$row['name'].'"><img src="images/episodes/thumbs/'.$row['id_season'].'x'.$img.'.png" title="Kliknj, aby powiększyć obrazek" alt="'.$row['name'].'"/></a></dd>'.PHP_EOL;
  14. echo '<dd><span class="bold">Polska nazwa odcinka:</span> '.$row['polish_name'].'</dd>'.PHP_EOL;
  15. echo '<dd><span class="bold">Odcinek numer:</span> '.$row['id'].'</dd>'.PHP_EOL;
  16. echo '<dd><span class="bold">Reżyseria:</span> '.$row['direction'].'</dd>'.PHP_EOL;
  17. echo '<dd><span class="bold">Scenariusz:</span> '.$row['written_by'].'</dd>'.PHP_EOL;
  18. echo '<dd><span class="bold">Data premiery w Polsce:</span> '.strftime('%e %B %Y(%A)', strtotime($row['poland_premiere'])).'</dd>'.PHP_EOL;
  19. echo '<dd><span class="bold">Data premiery w USA:</span> '.strftime('%e %B %Y(%A)', strtotime($row['usa_premiere'])).'</dd>'.PHP_EOL;
  20. echo '<dd><span class="video">Oglądaj Online:</span> <a target="_blank" href="http://www.megavideo.com/?v='.$row['online'].'" title="Oglądaj na MegaVideo">MegaVideo.com</a></dd>'.PHP_EOL;
  21. echo '<dd><div class="linia"></div></dd>'.PHP_EOL;
  22. echo '<dd><p title="Opis">'.$row['description'].'?</p></dd>'.PHP_EOL;
  23. echo '</dl>'.$i55.$i56.PHP_EOL;
  24. }
  25. }
  26. $i++;
  27. }

$GET_sezon jest zapisane do $sezon.
vermis
Cytat(Dzimbo @ 23.08.2010, 13:50:52 ) *
$GET_sezon jest zapisane do $sezon.


Jest tylko zapisane, czy zapisane i przefiltrowane?
Poczytaj trochę o sql injection oraz o systemach szablonów (np.smarty):
http://www.lonet.eu/php/zabezpieczenie-przed-sql-injection/
http://www.smarty.net/
Dzimbo
Dobra nad zabezpieczaniem będę się głowił później ale teraz chodzi aby limit dobrze działał.
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.