Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] dodanie adresu url
Forum PHP.pl > Forum > Przedszkole
Grzesiekb91
normalnie porazka smile.gif ucze sie z ksiazki..

  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz polaczenie z serwerem.");
  3. mysql_select_db("moviesite") or die (mysql_error());
  4. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM movie";
  5. $result = mysql_query($query,$link) or die(mysql_error());
  6. $num_movies = mysql_num_rows($result);
  7. $movie_header=<<<EOD
  8. <h2><center>Baza danych recenzji filmw</center></h2>
  9. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  10. <tr>
  11. <th>Tytul filmu</th>
  12. <th>Reżyser</th>
  13. <th>Główny aktor</th>
  14.  
  15. </tr>
  16.  
  17. EOD;
  18. function get_director(){
  19. global $movie_director;
  20. global $director;
  21. $query_d = "SELECT people_fullname " .
  22. "FROM people " .
  23. "WHERE people_id='$movie_director'";
  24.  
  25. $results_d = mysql_query($query_d) or die(mysql_error());
  26. $row_d = mysql_fetch_array($results_d);
  27. extract($row_d);
  28. $director = $people_fullname;
  29. }
  30. function get_leadactor(){
  31. global $movie_leadactor;
  32. global $leadactor;
  33.  
  34. $query_a = "SELECT people_fullname " .
  35. "FROM people " .
  36. "WHERE people_id='$movie_leadactor'";
  37. $results_a = mysql_query ($query_a) or die(mysql_error());
  38. $row_a = mysql_fetch_array($results_a);
  39. extract ($row_a);
  40. $leadactor = $people_fullname;
  41. }
  42. $movie_details = " ";
  43. while ($row = mysql_fetch_array($result)) {
  44. $movie_id = $row['movie_id'];
  45. $movie_name = $row['movie_name'];
  46. $movie_director = $row['movie_director'];
  47. $movie_leadactor = $row['movie_leadactor'];
  48. //pobranie mienia i nazwiska rezesera z tabeli people
  49. get_director();
  50. get_leadactor();
  51. $movie_details .=<<<EOD
  52. <tr>
  53.  
  54. <td><a href="movie_details.php?movie_id=$movie_id"
  55.   title="Dowiedz sie wiecej na temat $movie_name">$movie_name</td>
  56.  
  57.  
  58.  
  59. <td>$movie_name</td>
  60. <td>$director</td>
  61. <td>$leadactor</td>
  62. </tr>
  63. EOD;
  64. }
  65. $movie_details .=<<<EOD
  66.  
  67. <tr>
  68.  
  69.  
  70. <td>Łącznie filmów: $num_movies</td>
  71. </tr>
  72. </table>
  73. EOD;
  74. $movie_footer="</table>";
  75. $movie =<<<MOVIE
  76. $movie_header
  77. $movie_details
  78. $movie_footer
  79. MOVIE;
  80. echo "W bazie danych znajduje się $num_movies filmów.";
  81. echo $movie;
  82. ?>




kayman
a problem jest w czym?
Grzesiekb91
kurcze myslalem, ze dałem wytłumaczenie, byłem totalnie tępy haha.gif juz to rozwikłałem, i już rozumie na czym polegał błąd, tak to jest jak sie uczy z książki ;d




<td>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>



movie_name mialem zamienic na link, a ja przed to dodawalem link, i wyszło coś takiego

<td><a href="movie_details.php?movie_id=$movie_id"
title="Dowiedz sie wiecej na temat $movie_name">$movie_name</td>

<td>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>

a w tabeli sajgon...

a co trza zrobić by dodać adres url takze reżyserom i aktorom ?
patwoj98
Przede wszystkim to domykaj znacznik '</a>' exclamation.gif

Dokładnie trzeba zrobić to samo - '<a href="xxx">$zmienna</a>'

Grzesiekb91
niby próbuje robić to samo, ale wcześniej żeby zrobić ten link, musiałem kod strony edytować w 3 miejscach, na samym poczatku w zapytaniu, dodać "movie_id"., nastepnie w petli while dodac linijke : $movie_id = $row['movie_id'];


a nastepnie wlasnie zmienic na dole dodac url, i w zasadzie próbuje jakąś metodą prób i błędów, bo w zaasadzie ciezko kumam, no ale nie wychodzi
patwoj98
Porzucić lepiej tę książkę i poucz się ze stron na necie, które nauczą Cię mysqli bo z tym to już możesz do diabła iść.

  1. <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>


W tym momencie wystarczy, że zmienisz:
- miejsce do którego prowadzi link
- to co ma być przekazane GETem czyli to co jest za "?"
- i zmienisz zmienne o nazwie $movie_id

P.S. Szukałem w referencji atrybutu "a" czegoś takiego jak title. Coś on dodaje, zmienia?

http://www.w3schools.com/tags/tag_a.asp
Grzesiekb91
jak mam zmienić zmienną ? wgl pojęcie dla mnie nie zrozumiałe, specjalnie ją dodałem (movie_id), żeby sie te cholerne linki wyswietlaly, wiec jak mam ją zmienić ? czy ona wgl ma coś wspólnego z nazwą rezysera czy aktora? Ja juz probowałem dosyć długo, jak puisałem, metodą prób i błędów, ja już takie rzeczy tam wpisywałem, że szkoda gadać, a książka faktycznie, nie uczy niczego, jedynie dzięki niej mam więcej pytań niż odpowiedzi.......

  1. <td>$<a href="movie_details.php?movie_director=$movie_director"
  2. title="Dowiedz sie wiecej na temat $movie_director">$movie_director</td>


cuda na kiju... a to o co pytasz nic nie zmienia, czy to jest czy nie, strona wyglda tak samo


tego $ juz usunalem tam w kodzie, i strona wyswietla sie tak:



wyswietla sie numer rezysera zamiast imienia i nazwiska

ludziska skad wy sie tego nauczyliscie, ze umiecia, a z taka strona mecze sie 5 dni ? kupilem ta ksiazke pare lat temu za 100zł do nauki tworzenia stron php, i obslugi mysql, okazała sie kupą gówna, teraz kupiłem nową

"PHP i MySQL. Wprowadzenie
Autorzy: Michele Davis, Jon Phillips" choc korzystam ze starej, bo w starej sie wydaje prosciejsza...


Choć możliwe, że jestem po prostu tępy, bo skoro drugi raz mi tłumaczysz, najprostszą rzecz jaką jest linkowanie, to chyba coś jest nie tak ze mną, w dodatku mam dwie książlki i lipa, mam pytanie czy te kursy po 5 tys. zł coś dają wgl ?
patwoj98
Wygląda, ale spróbuj tak jak Ci podałem. Po co Ci ten dolar między <td>, a a ?

1. Wpakuj cały row tabeli do while. Inaczej będzie Ci się tylko ostatnio pobrany rekord z bazy wrzucał w linki.
Tak to powinno wyglądać:

  1. while ($row = mysql_fetch_array($result)) {
  2. $movie_id = $row['movie_id'];
  3. $movie_name = $row['movie_name'];
  4. $movie_director = $row['movie_director'];
  5. $movie_leadactor = $row['movie_leadactor'];
  6. //pobranie mienia i nazwiska rezesera z tabeli people
  7. get_director();
  8. get_leadactor();
  9. $movie_details .=<<<EOD
  10. <tr>
  11.  
  12. <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>
  13. <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz sie wiecej na temat $movie_director</a></td>
  14. <td><a href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej na temat $movie_leadactor</a></td>
  15. </tr>
  16. }


Nie wiem co zwracają funkcje get_director(); i get_leadactor(); oraz nie wiem czy w pliku movie_details.php masz pobieranie danych dla tych wszystkich elementów, więc jeśli jest tak jak myślę - funkcje nie robią nic, a w tym pliku pobierasz wszystkie dane w zależności od zapytania to u góry masz jak to powinno być.

EDIT: Nigdy nie korzystałem z kursów. Książkę mam, ale obrasta kurzem bo niestety nie nadąża za technologią. Internet jest pełen wiedzy. Wiele nauczyłem się od kolegów po fachu i z manuala.
Grzesiekb91
wywala błąd w ostatniej linijce kodu czyli "?>" strony movie_details.php jeszcze nie ma, to był podrozdział dotyczący tylko tego jak zalinkować nazwy filmów, udało się bezproblemowo (prawie haha.gif)

przepisze z książki kawałek

"Po dodaniu funkcji get_director(), i get_leadactor(), skrypt dla każdego wiersza głównych wyników wykonuje dodatkowe zapytania. W ten sposób uzyskujemy potrzebne informacje bez zaśmiecxania oryginalnego zapytania. Dodatkowo zmieniliśm,y formatowanie końcówki tabeli, aby uniknąć problemów z poprzedniego przykładu" Gratulujemy ! Oto pierwsszy wykonany wspólnie skrypt, który pobiera informacje z bazy danych i umiesszcza je w ładnie wglądającej tabeli HTML. Nie zamierzamy jednak spocząć na laurach"


BTW. Nabprawde bardzo ładna ta tabela HTML... :-)


EDIT:: OK JUZ DZIAŁA, dzieje sie to :

patwoj98
Jak wywala błąd to wklej cały aktualny skrypt i wklej błąd pod tym. To, że jest napisane, że w ostatniej błąd to nic nie znaczy.
Grzesiekb91
moze w sumie , dobry skrypt pisałem wcześniej, ale dlaczego zamiast imienia i nazwiska wyswietlaja sie numery ? mi to się wydawało od samego początku, ze skoro dodałem w pętli while movie_id, to może też coś takiego musze zrobić coś tam dodać, ogólnie to różnie tam probowałem wpisywać

people_fullname, people_id, movie_director, people_isdirector, bo takie cuś w książce było, jak tworzyłem baze danych, i robiłem tak metodą prób i błędów, coś tam dodawałem z tego do tej pętli, później usuwałem, dodawałem gdzie indziej, no nic, w tej książce jest tak naje****ne, że nie idzie rozgryźć, albo people_isdirector, albo movie_director, bo właśnie nie rozumie, dlaczego nie pisze people_isdirector, a movie_director, tworze wgl coś nowego, i to się przecież w głowie miesza i pytanie powstaje DLACZEGO ? w tej książce tego nie ma dlaczego
patwoj98
Porównaj nasze skrypty. Obstawiam, że znajdziesz różnice smile.gif

Te numery to prawdopodobnie ID z bazy. Nie wiem czy tworzyłeś bazę, jeśli tak to pewnie masz tabelę reżyser i tam masz idRezyser oraz imie i nazwisko.
A w tabeli z filmami masz tylko ID do tamtej tabeli.
Grzesiekb91
  1. ......mysql_select_db ("moviesite");
  2.  
  3. $movie = "CREATE TABLE movie (
  4. movie_id int(11) NOT NULL auto_increment,
  5. movie_name varchar(255) NOT NULL,
  6. movie_type tinyint(2) NOT NULL default 0,
  7. movie_year int(4) NOT NULL default 0,
  8. movie_leadactor int(11) NOT NULL default 0,
  9. movie_director int(11) NOT NULL default 0,
  10. PRIMARY KEY (movie_id),
  11. KEY movie_type (movie_type, movie_year)
  12. )";
  13. $results = mysql_query($movie)
  14. $movietype = "CREATE TABLE movietype (
  15. movietype_id int(11) NOT NULL auto_increment,
  16. movietype_label varchar(100) NOT NULL,
  17. PRIMARY KEY (movietype_id)
  18. )";
  19.  
  20. $results = mysql_query($movietype) or die(mysql_error());
  21.  
  22. $people = "CREATE TABLE people (
  23. people_id int(11) NOT NULL auto_increment,
  24. people_fullname varchar(255) NOT NULL,
  25. people_isactor tinyint(1) NOT NULL default 0,
  26. people_isdirector tinyint(1) NOT NULL default 0,
  27. PRIMARY KEY (people_id)
  28. )";
  29. $results = mysql_query($people) or die(mysql_error());
  30. .....



no tak title nie dałeś po prostu dlatego tak mi się wyświetlilo
patwoj98
Najlepiej pobierz PHPMyAdmin lub Adminera i tam pokaż co mają kolumny. Jeśli masz localhosta typu Wamp to masz phpMyAdmina
Grzesiekb91


czyli musiałbym coś zrobić w tej pętli while questionmark.gif żeby wyswietlalo people_fullname ale tylko people_isdirector ?
patwoj98
Jedna tabelka to za mało. Udostępnij te 3 co tworzysz. To Ci powiem jak pobierać smile.gif
Grzesiekb91


patwoj98
  1. function get_director($dir){
  2. $result = mysql_query("SELECT `people_fullname` FROM `NAZWA_1_TABELKI` WHERE `people_id` = '$dir' " );
  3. $result = mysql_fetch_assoc($result);
  4.  
  5. $director = $result['people_fullname'];
  6. return $director;
  7. }
  8.  
  9. function get_leadactor($act){
  10. $result = mysql_query("SELECT `people_fullname` FROM `NAZWA_1_TABELKI` WHERE `people_id` = '$act' " );
  11. $result = mysql_fetch_assoc($result);
  12.  
  13. $actor = $result['people_fullname'];
  14. return $actor;
  15. }
  16. while ($row = mysql_fetch_array($result)) {
  17. $movie_id = $row['movie_id'];
  18. $movie_name = $row['movie_name'];
  19. $movie_director = $row['movie_director'];
  20. $movie_leadactor = $row['movie_leadactor'];
  21. //pobranie mienia i nazwiska rezesera z tabeli people
  22. get_director($movie_director);
  23. get_leadactor($movie_leadactor);
  24. $movie_details .=<<<EOD
  25. <tr>
  26.  
  27. <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>
  28. <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz sie wiecej na temat $director</a></td>
  29. <td><a href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej na temat $actor</a></td>
  30. </tr>
  31. }


Sprawdź to
Grzesiekb91
sorry stary, że Cie tak wykorzystuje:

  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz polaczenie z serwerem.");
  3. mysql_select_db("moviesite") or die (mysql_error());
  4. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM movie";
  5. $result = mysql_query($query,$link) or die(mysql_error());
  6. $num_movies = mysql_num_rows($result);
  7. $movie_header=<<<EOD
  8. <h2><center>Baza danych recenzji filmw</center></h2>
  9. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  10. <tr>
  11. <th>Tytul filmu</th>
  12. <th>Reżyser</th>
  13. <th>Główny aktor</th>
  14.  
  15. </tr>
  16.  
  17. EOD;
  18. function get_director(){
  19. global $movie_director;
  20. global $director;
  21. $query_d = "SELECT people_fullname " .
  22. "FROM people " .
  23. "WHERE people_id='$movie_director'";
  24.  
  25. $results_d = mysql_query($query_d) or die(mysql_error());
  26. $row_d = mysql_fetch_array($results_d);
  27. extract($row_d);
  28. $director = $people_fullname;
  29. }
  30. function get_leadactor(){
  31. global $movie_leadactor;
  32. global $leadactor;
  33.  
  34. $query_a = "SELECT people_fullname " .
  35. "FROM people " .
  36. "WHERE people_id='$movie_leadactor'";
  37. $results_a = mysql_query ($query_a) or die(mysql_error());
  38. $row_a = mysql_fetch_array($results_a);
  39. extract ($row_a);
  40. $leadactor = $people_fullname;
  41. }
  42. while ($row = mysql_fetch_array($result)) {
  43. $movie_id = $row['movie_id'];
  44. $movie_name = $row['movie_name'];
  45. $movie_director = $row['movie_director'];
  46. $movie_leadactor = $row['movie_leadactor'];
  47. //pobranie mienia i nazwiska rezesera z tabeli people
  48. get_director();
  49. get_leadactor();
  50. $movie_details .=<<<EOD
  51.   <tr>
  52.  
  53.   <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>
  54.   <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz sie wiecej na temat $movie_director</a></td>
  55.   <td><a href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej na temat $movie_leadactor</a></td>
  56.   </tr>
  57.   EOD;
  58. }
  59. $movie_details .=<<<EOD
  60.  
  61. <tr>
  62.  
  63.  
  64. <td>Łącznie filmów: $num_movies</td>
  65. </tr>
  66. </table>
  67. EOD;
  68. $movie_footer="</table>";
  69. $movie =<<<MOVIE
  70. $movie_header
  71. $movie_details
  72. $movie_footer
  73. MOVIE;
  74. echo "W bazie danych znajduje się $num_movies filmów.";
  75. echo $movie;
  76. ?>





ja tam w swoim kodzie mialem EOD;, ty dałeś bez, to sie wyswietlal błąd, więc dodałem z powrotem, więć błąd teraz sie wyswietla w ostantiej linijce kodu strony
patwoj98
  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz polaczenie z serwerem.");
  3. mysql_select_db("moviesite") or die (mysql_error());
  4. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM movie";
  5. $result = mysql_query($query,$link) or die(mysql_error());
  6. $num_movies = mysql_num_rows($result);
  7. $movie_header=<<<EOD
  8. <h2><center>Baza danych recenzji filmw</center></h2>
  9. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  10. <tr>
  11. <th>Tytul filmu</th>
  12. <th>Reżyser</th>
  13. <th>Główny aktor</th>
  14.  
  15. </tr>
  16.  
  17. EOD;
  18. function get_director($dir){
  19. $result = mysql_query("SELECT `people_fullname` FROM `NAZWA_1_TABELKI` WHERE `people_id` = '$dir' " );
  20. $result = mysql_fetch_assoc($result);
  21.  
  22. $director = $result['people_fullname'];
  23. return $director;
  24. }
  25.  
  26. function get_leadactor($act){
  27. $result = mysql_query("SELECT `people_fullname` FROM `NAZWA_1_TABELKI` WHERE `people_id` = '$act' " );
  28. $result = mysql_fetch_assoc($result);
  29.  
  30. $actor = $result['people_fullname'];
  31. return $actor;
  32. }
  33. while ($row = mysql_fetch_array($result)) {
  34. $movie_id = $row['movie_id'];
  35. $movie_name = $row['movie_name'];
  36. $movie_director = $row['movie_director'];
  37. $movie_leadactor = $row['movie_leadactor'];
  38. //pobranie mienia i nazwiska rezesera z tabeli people
  39. get_director($movie_director);
  40. get_leadactor($movie_leadactor);
  41. $movie_details .=<<<EOD
  42.   <tr>
  43.  
  44.   <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>
  45.   <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz sie wiecej na temat $director</a></td>
  46.   <td><a href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej na temat $actor</a></td>
  47.   </tr>
  48. EOD;
  49. }
  50. $movie_details .=<<<EOD
  51.  
  52. <tr>
  53.  
  54.  
  55. <td>Łącznie filmów: $num_movies</td>
  56. </tr>
  57. </table>
  58. EOD;
  59. $movie_footer="</table>";
  60. $movie =<<<MOVIE
  61. $movie_header
  62. $movie_details
  63. $movie_footer
  64. MOVIE;
  65. echo "W bazie danych znajduje się $num_movies filmów.";
  66. echo $movie;
  67. ?>


Podawaj co PHP zwraca.
nospor
EOD; ma byc w pierwszej kolumnie nowej linii a nie w polowie linii

http://php.net/manual/en/language.types.string.php
Cytat
The closing identifier must begin in the first column of the line.

Nawet kolorowanie na forum pokazuje ci wyraźny błąd w tym miejscu
Grzesiekb91
Parse error: syntax error, unexpected $end in C:\xampp\test\tabel4.php on line 67
patwoj98
Skopiuj z poprzedniej strony mój kod i go wklej sobie.
Grzesiekb91
to właśnie zrobiłem

patwoj98
Linijka 19 i 27, przeczytaj ją. Tam jest capsem zrobione abyś wpisał nazwę tabelki bo ja jej nie znam. To ta z 1 Twojego skrinu
Grzesiekb91
kurde, przepraszam już z tych nerwów i ciągłego robienia tego samego sie zagalopowałem, teraz się wyswietla to samo, tyle że bez błędów ponad tabelą...
patwoj98
Za wywołaniem funkcji wstaw, tj. w linii 41 wstaw var_dump($director); var_dump($actor); To co jest w tej lini proszę przesuń enterem w dół.
Grzesiekb91
  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz polaczenie z serwerem.");
  3. mysql_select_db("moviesite") or die (mysql_error());
  4. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM movie";
  5. $result = mysql_query($query,$link) or die(mysql_error());
  6. $num_movies = mysql_num_rows($result);
  7. $movie_header=<<<EOD
  8. <h2><center>Baza danych recenzji filmw</center></h2>
  9. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  10. <tr>
  11. <th>Tytul filmu</th>
  12. <th>Reżyser</th>
  13. <th>Główny aktor</th>
  14.  
  15. </tr>
  16.  
  17. EOD;
  18. function get_director($dir){
  19. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE `people_id` = '$dir' " );
  20. $result = mysql_fetch_assoc($result);
  21.  
  22. $director = $result['people_fullname'];
  23. return $director;
  24. }
  25.  
  26. function get_leadactor($act){
  27. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE `people_id` = '$act' " );
  28. $result = mysql_fetch_assoc($result);
  29.  
  30. $actor = $result['people_fullname'];
  31. return $actor;
  32. }
  33. while ($row = mysql_fetch_array($result)) {
  34. $movie_id = $row['movie_id'];
  35. $movie_name = $row['movie_name'];
  36. $movie_director = $row['movie_director'];
  37. $movie_leadactor = $row['movie_leadactor'];
  38. //pobranie mienia i nazwiska rezesera z tabeli people
  39. var_dump($director);
  40. var_dump($leadactor);
  41. get_director($movie_director);
  42. get_leadactor($movie_leadactor);
  43.  
  44. $movie_details .=<<<EOD
  45.   <tr>
  46.  
  47.   <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej na temat $movie_name</a></td>
  48.   <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz sie wiecej na temat $director</a></td>
  49.   <td><a href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej na temat $actor</a></td>
  50.   </tr>
  51. EOD;
  52. }
  53. $movie_details .=<<<EOD
  54.  
  55. <tr>
  56.  
  57.  
  58. <td>Łącznie filmów: $num_movies</td>
  59. </tr>
  60. </table>
  61. EOD;
  62. $movie_footer="</table>";
  63. $movie =<<<MOVIE
  64. $movie_header
  65. $movie_details
  66. $movie_footer
  67. MOVIE;
  68. echo "W bazie danych znajduje się $num_movies filmów.";
  69. echo $movie;
  70. ?>



Dodałem ten vardump przed
  1. $movie_details .=<<<EOD
(to bylo w linii 41 -ją zsunąłem w dół),

W tabeli bez zmian. Ponad tabela wyswietla sie "NULL NULL NULL NULL NULL NULL W bazie danych znajduje się 3 filmów."
patwoj98
Zmień Twój kod na mój kod!
Bo narazie jest Twój, który nie zwraca tego co mój.

Wtedy z var_dumpuj
Grzesiekb91
to jest twój kod, skopiowałem raz jeszcze i zmienilem nazwe tej tabelki, no i jak napisałem, wyświetla się NULL NULL NULL NULL NULL NULL W bazie danych znajduje się 3 filmów.
patwoj98
Widzę, że to nie mój bo zupełnie inne funkcje są wpisane niż ja mam...
Grzesiekb91
przeciez ściągnąłem ten twój kod nawet sad.gif ewidentnie wszystko to jest po***ne, źle skopiowałem na forumn, ale u mnie w nottatniku jest alles gut, no i błą taki jak mówiłem
patwoj98
Popraw, żeby na forum było to co aktualnie masz. Nie mogę szukać błędu w Twoim notatniku.
Grzesiekb91
Poprawiłem, poprawiłem już :-) ale swoją drogą skoro przecież tylko dodałem to co kazałeś to gdzie mógł być ten błąd ? dodałem tylko dwie linijki bardzo krótkiego kodu sad.gif jak dodaje var_dump, wyswietla sie nad tabela "NULL NULL NULL NULL NULL NULL W bazie danych znajduje się 3 filmów." , wiec roznica bez dumpa jest taka ze nie mia tych zer

  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz
  3.  
  4. polaczenie z serwerem.");
  5. mysql_select_db("moviesite") or die (mysql_error());
  6. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM
  7.  
  8. movie";
  9. $result = mysql_query($query,$link) or die(mysql_error());
  10. $num_movies = mysql_num_rows($result);
  11. $movie_header=<<<EOD
  12. <h2><center>Baza danych recenzji filmw</center></h2>
  13. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  14. <tr>
  15. <th>Tytul filmu</th>
  16. <th>Reżyser</th>
  17. <th>Główny aktor</th>
  18.  
  19. </tr>
  20.  
  21. EOD;
  22. function get_director($dir){
  23. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE
  24.  
  25. `people_id` = '$dir' " );
  26. $result = mysql_fetch_assoc($result);
  27.  
  28. $director = $result['people_fullname'];
  29. return $director;
  30. }
  31.  
  32. function get_leadactor($act){
  33. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE
  34.  
  35. `people_id` = '$act' " );
  36. $result = mysql_fetch_assoc($result);
  37.  
  38. $actor = $result['people_fullname'];
  39. return $actor;
  40. }
  41. while ($row = mysql_fetch_array($result)) {
  42. $movie_id = $row['movie_id'];
  43. $movie_name = $row['movie_name'];
  44. $movie_director = $row['movie_director'];
  45. $movie_leadactor = $row['movie_leadactor'];
  46. //pobranie mienia i nazwiska rezesera z tabeli people
  47.  
  48. get_director($movie_director);
  49. get_leadactor($movie_leadactor);
  50. var_dump($director);
  51. var_dump($actor);
  52.  
  53. $movie_details .=<<<EOD
  54.   <tr>
  55.  
  56.   <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej
  57.  
  58. na temat $movie_name</a></td>
  59.   <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz
  60.  
  61. sie wiecej na temat $director</a></td>
  62.   <td><a
  63.  
  64. href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej
  65.  
  66. na temat $actor</a></td>
  67.   </tr>
  68. EOD;
  69. }
  70. $movie_details .=<<<EOD
  71.  
  72. <tr>
  73.  
  74.  
  75. <td>Łącznie filmów: $num_movies</td>
  76. </tr>
  77. </table>
  78. EOD;
  79. $movie_footer="</table>";
  80. $movie =<<<MOVIE
  81. $movie_header
  82. $movie_details
  83. $movie_footer
  84. MOVIE;
  85. echo "W bazie danych znajduje się $num_movies filmów.";
  86. echo $movie;
  87. ?>


nie wiedziałem, że linkowanie może sprawić tyle problemu... może powrócę do HTML'a i Microsoft Frontpage'a
patwoj98
W var_dump-y wklej wywołania funkcji z powyższych 2 linijek. 1 var_dump - 1 funkcja
Grzesiekb91
nie rozumie
patwoj98
var_dump(get_director($movie_director));
var_dump(get_director($movie_leadactor));
Grzesiekb91
"string(11) "Tom Shadyac" string(10) "Jim Carrey" string(10) "Mike Judge" string(14) "Ron Livingston" string(15) "Lawrence Kasdan" string(11) "Kevin Kline" W bazie danych znajduje się 3 filmów.
" takie coś wyrzuca mi
patwoj98
Czyli funkcje zwracają to co mają. To chcąc nie chcąc to musi działać...
Grzesiekb91
tyle, że nie wyswietlaja się one w tabeli tylko nad tabelą, trudno, moze faktycznie zrezygnuje z tej ksiazki



no i lipa
nospor
Cytat
Czyli funkcje zwracają to co mają. To chcąc nie chcąc to musi działać...
Prowadzi slepy głuchego...

@patwoj a od kiedy RETURN w funkcji powoduje wyswietlanie wyniku na ekran? Co z tego ze funkcja cos tam zwraca, skoro ty tego nie odbierasz w ogole?
patwoj98
  1. <tr>
  2.  
  3. <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej
  4.  
  5. na temat $movie_name</a></td>
  6. <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz
  7.  
  8. sie wiecej na temat get_director($movie_director)</a></td>
  9. <td><a
  10.  
  11. href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej
  12.  
  13. na temat get_leadactor($movie_leadactor)</a></td>
  14. </tr>


Spróbuj tak.

@nospor - skoro już się wypowiadasz to pomóż nam i naprowadź. Zdaje sobie sprawę, że nie jestem znawcą perfekt tematu, ale od kogoś się trzeba uczyć
nospor
Caly czas naprowadzam. Najpierw poprawilem Wam EOD, teraz wyjasniam ci podstawy funkcji. Co jeszcze mam zrobic? Nie umiesz wyniku funkcji zapisac w zmiennej?
Grzesiekb91
możesz zrobić mi to z tym "title=" ? bez tego title bałagan w komórkach zamiast nazwisk, imion, nazw filmow, kody sa w komórkach "Dowiedz sie wiecej na temat get_director(2)" z całą pewnoscia z title= , bedzie sam numer, czyli to samo co na poczatku, zamiast nazwiska, wyswietla sie jego numer, podporządkowany numerowi filmu czy jakos tak, juz sam nie wiem co mówie, nie wiem co czytam, nie wiem co wpisuje w nottatnik :-)
patwoj98
Dobra, czyli powinno być tak. Nie myślałem.

  1. <?php
  2. $link = mysql_connect("localhost", "bp5am", "bp5ampass") or die ("Sprawdz
  3.  
  4. polaczenie z serwerem.");
  5. mysql_select_db("moviesite") or die (mysql_error());
  6. $query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM
  7.  
  8. movie";
  9. $result = mysql_query($query,$link) or die(mysql_error());
  10. $num_movies = mysql_num_rows($result);
  11. $movie_header=<<<EOD
  12. <h2><center>Baza danych recenzji filmw</center></h2>
  13. <table width="70%" border="1" cellpadding="2" cellspacing="2" align="center">
  14. <tr>
  15. <th>Tytul filmu</th>
  16. <th>Reżyser</th>
  17. <th>Główny aktor</th>
  18.  
  19. </tr>
  20.  
  21. EOD;
  22. function get_director($dir){
  23. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE
  24.  
  25. `people_id` = '$dir' " );
  26. $result = mysql_fetch_assoc($result);
  27.  
  28. $director = $result['people_fullname'];
  29. return $director;
  30. }
  31.  
  32. function get_leadactor($act){
  33. $result = mysql_query("SELECT `people_fullname` FROM `people` WHERE
  34.  
  35. `people_id` = '$act' " );
  36. $result = mysql_fetch_assoc($result);
  37.  
  38. $actor = $result['people_fullname'];
  39. return $actor;
  40. }
  41. while ($row = mysql_fetch_array($result)) {
  42. $movie_id = $row['movie_id'];
  43. $movie_name = $row['movie_name'];
  44. $movie_director = $row['movie_director'];
  45. $movie_leadactor = $row['movie_leadactor'];
  46. //pobranie mienia i nazwiska rezesera z tabeli people
  47.  
  48. $director = get_director($movie_director);
  49. $actor = get_leadactor($movie_leadactor);
  50.  
  51. $movie_details .=<<<EOD
  52.   <tr>
  53.  
  54.   <td><a href="movie_details.php?movie_id=$movie_id">Dowiedz sie wiecej
  55.  
  56. na temat $movie_name</a></td>
  57.   <td><a href="movie_details.php?movie_director=$movie_director">Dowiedz
  58.  
  59. sie wiecej na temat $director</a></td>
  60.   <td><a
  61.  
  62. href="movie_details.php?movie_leadactor=$movie_leadactor">Dowiedz sie wiecej
  63.  
  64. na temat $actor</a></td>
  65.   </tr>
  66. EOD;
  67. }
  68. $movie_details .=<<<EOD
  69.  
  70. <tr>
  71.  
  72.  
  73. <td>Łącznie filmów: $num_movies</td>
  74. </tr>
  75. </table>
  76. EOD;
  77. $movie_footer="</table>";
  78. $movie =<<<MOVIE
  79. $movie_header
  80. $movie_details
  81. $movie_footer
  82. MOVIE;
  83. echo "W bazie danych znajduje się $num_movies filmów.";
  84. echo $movie;
  85. ?>
nospor
zamieniles RETURN na echo a potem odbierasz wynik funkcji... kurcze, no to są podstawy... skoro wynik zapisujesz w zmiennej, to RETURN ma zostac

poza tym, zadne dodatkowe funkcje nie są potrzebne, gdyz te dodatkowe funkcje generują całą masę zbednych zapytan.

Do głównego zapytania:
$query = "SELECT movie_id, movie_name, movie_director, movie_leadactor FROM
movie";
nalezy dodać dwa LEFT JOIN, ktore pobiorą dane odpowiednio dla movie_director i movie_leadactor. Wszystko wiec sprowadzi sie do jednego głównego zapytania i bedzie szybkie.
Grzesiekb91
Pomoz ktos exclamation.gif jak ktos pomoze to porobie dzis jeszcze te strony, choć denerwują mnie do czerwoności, słabe nerwy mam niestety :-) jak nie to ide sie nachlac, bo juz od 12 nosi mna i caly czas mysle, o tym ze tak prosta rzecz moze byc tak trudna
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.