Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Nie wstawia danych z mysql do tabeli
Forum PHP.pl > Forum > Przedszkole
antc111
Witam. Jestem w trakcie czytania książki "PHP, mySql od podstaw". Utknąłem w dziale wstawianie danych z serwera mysql w skrypt PHP wyświetlający je w postaci tabeli. Oto kod:
  1. <?php
  2.  
  3. $link = mysql_connect("localhost","bp5am","bp5ampass") or die(mysql_error());
  4. mysql_select_db("moviesite") or die(mysql_error);
  5.  
  6. $query = "SELECT movie_name, movie_director, movie_leadactor " .
  7. "FROM movie";
  8.  
  9.  
  10. $result = mysql_query($query, $link) or die(mysql_error());
  11. $num_movies = mysql_num_rows($result);
  12.  
  13.  
  14.  
  15. $movie_header=<<<EOD
  16. <h2><center>Baza danych recenzji filmów</center></h2>
  17. <table width="70%" border="1" cellpadding="2" callspacing="2" align="center">
  18. <tr>
  19. <th>Tytuł filmu</th>
  20. <th>Reżyser</th>
  21. <th>Główny aktor</th>
  22. </tr>
  23. </table>
  24. EOD;
  25.  
  26. $movie_details ='';
  27. while ($row = mysql_fetch_array($result)) {
  28. $movie_name = $row["movie_name"];
  29. $movie_director = $row['movie_director'];
  30. $movie_leadactor = $row['movie_leadactor'];
  31.  
  32. $movie_details.=<<<EOD
  33. <tr>
  34. <td>$movie_name</td>
  35. <td>$movie_director</td>
  36. <td>$movie_leadactor</td>
  37. </tr>
  38. EOD;
  39. }
  40.  
  41. $movie_details .=<<<EOD
  42. <tr>
  43. <td>&nbsp;</td>
  44. </tr>
  45. <tr>
  46. <td>Łącznie filmów: $num_movies</td>
  47. </tr>
  48. EOD;
  49.  
  50. $movie_footer ="</table>";
  51.  
  52. $movie =<<<MOVIE
  53. $movie_header
  54. $movie_details
  55. $movie_footer
  56. MOVIE;
  57.  
  58. echo "W bazie danych jest $num_movies filmów";
  59. echo $movie;
  60.  
  61. ?>


'$movie_header' wstawia dane elegancko w tabele, natomiast dane pobrane z serwera są wyświetlane pod tabelą w jednej linii. Sprawdzałem to na 3 przeglądarkach. Czy sposób kodowania przedstawiony w książce jest przestarzały czy może ja popełniłem gdzieś błąd? Z góry bardzo dziękuje za odpowiedzi.
Ivanowski
Tak ksiązka jest stara bo powinna się korzystać z mysqli, a na php 5.5 wyskakuje o tym komunikat w postaci błędu.
kreatiff
Ja bym od razu PDO zalecał. Poważnie, nie ma sensu uczyć się z książki, z której pochodzi ten kod, jeśli czerpie ona z przestarzałych rozwiązań.

Co do pytania, to kończysz tabelę </table> już w nagłówku, więc dane wędrują pod tabelę.
antc111
@kreatiff rzeczywiście miałeś racje. Wystarczyło nie zamykać tabeli w nagłówku, a błąd ten powielany jest w książce wielokrotnie. Wiem że książka jest przestarzała, ale chciałem ją szybko "przelecieć" aby poznać podstawy mechanizmów. Mam nadzieje że nie zajmie mi to więcej niż 2 tygodnie więc oprócz złych nawyków, których raczej nie przyswajam nie ma "krzywdy". Wielkie dzięki za pomoc. A co polecacie na początek co jest jeszcze w miarę aktualne?
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.