Witam, mam problem z pewnym zadaniem z książki PHP5 Apache i MySql od podstaw. Niestety po wielu godzinach bezsensownej straty czasu na szukanie rozwiązania muszę zwrócic się do bardziej doswiadczonych.
Zapytania i wywołanie (tu jest problem):
$query= "SELECT movie_name, movie_director, movie_leadactor " .
"FROM movie";
$movie_header = <<<EOL
<h2> <center> Baza Danych Recenzji filmow </center> </h2>
<table width = "70%" border="1" cellpadding="2" cellspacing="2" align = "center" >
<tr>
<th> Tytul filmu </th>
<th> Rezyser</th>
<th> Glowny aktor </th>
</tr>
EOL;
function get_director (){
$query_d = "SELECT people_fullname ".
"FROM people ".
"WHERE people_id = '$movie_director'";
$director=$people_fullname;
}
function get_leadactor (){
$query_z = "SELECT people_fullname ".
"FROM people ".
"WHERE people_id = '$movie_leadactor'";
$leadactor=$people_fullname;
}
get_director();
get_leadactor();
$movie_details = ' ';
$movie_name= $row['movie_name'];
$movie_director = $row['movie_director'];
$movie_leadactor= $row['movie_leadactor'];
$movie_details .=<<<EOD
<tr>
<td>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>
</tr>
EOD;
}
$movie_details .=<<<EOD
<tr>
<td> </td>
</tr>
<tr>
<td>Laczenie filmow: $num_movies</td>
</tr>
EOD;
$movie_footer= "</table>";
$movie =<<<MOVIE
$movie_header
$movie_details
$movie_footer
MOVIE;
echo "W bazie danych znajduje sie $num_movies filmow";
Baza:
<?php
$connect = mysql_connect("localhost", "root", "") or
die ("sprawdz polaczenie");
$create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")
$movie = "CREATE TABLE movie (
movie_id int(11) NOT NULL auto_increment,
movie_name varchar(255) NOT NULL,
movie_type tinyint(2) NOT NULL
\default 0,
movie_year int(4) NOT NULL default 0,
movie_leadactor int(11) NOT NULL default 0,
movie_director int(11) NOT NULL default 0,
PRIMARY KEY (movie_id),
KEY movie_type (movie_type,movie_year)
)";
$movietype ="CREATE TABLE movietype (
movietype_id int(11) NOT NULL auto_increment,
movietype_label varchar (100) NOT NULL,
PRIMARY KEY (movietype_id)
)";
$people ="CREATE TABLE people (
people_id int(11) NOT NULL auto_increment,
people_fullname varchar(255) NOT NULL,
people_isactor tinyint(1) NOT NULL default 0,
people_isdirector tinyint(1) NOT NULL default 0,
PRIMARY KEY (people_id)
)";
?>
I wypełnienie:
<?php
$connect = mysql_connect("localhost", "root", "") or
die ("sprawdz polaczenie");
$create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")
$movie = "CREATE TABLE movie (
movie_id int(11) NOT NULL auto_increment,
movie_name varchar(255) NOT NULL,
movie_type tinyint(2) NOT NULL
\default 0,
movie_year int(4) NOT NULL default 0,
movie_leadactor int(11) NOT NULL default 0,
movie_director int(11) NOT NULL default 0,
PRIMARY KEY (movie_id),
KEY movie_type (movie_type,movie_year)
)";
$movietype ="CREATE TABLE movietype (
movietype_id int(11) NOT NULL auto_increment,
movietype_label varchar (100) NOT NULL,
PRIMARY KEY (movietype_id)
)";
$people ="CREATE TABLE people (
people_id int(11) NOT NULL auto_increment,
people_fullname varchar(255) NOT NULL,
people_isactor tinyint(1) NOT NULL default 0,
people_isdirector tinyint(1) NOT NULL default 0,
PRIMARY KEY (people_id)
)";
?>
Sama baza i wypełnienie działa, utknąłem na wypełnianiu tabeli.
Stosujac przedstawiony wyżej kod otrzymuje:
Warning: extract() expects parameter 1 to be array, boolean given in C:\a\xampp\htdocs\nauka\r1\tabel1.php on line 36
Notice: Undefined variable: people_fullname in C:\a\xampp\htdocs\nauka\r1\tabel1.php on line 37
Warning: extract() expects parameter 1 to be array, boolean given in C:\a\xampp\htdocs\nauka\r1\tabel1.php on line 52
Notice: Undefined variable: people_fullname in C:\a\xampp\htdocs\nauka\r1\tabel1.php on line 53
Stosujac kod znaleziony gdzies w necie:
<?php
$query = "SELECT movie_name, movie_director, movie_leadactor " .
"FROM movie";
$movie_header=<<<EOD
<h2><center>Movie Review Database</center</h2>
<table width="70%" border="1" cellpadding="2"
cellspacing="2" align="center">
<tr>
<th>Movie Title</th>
<th>Year of Release</th>
<th>Movie Director</th>
<th>Movie Lead Actor</th>
<th>Movie Type</th>
</tr>
EOD;
function get_director(){
$query_d = "SELECT people_fullname " .
"FROM people " .
"WHERE people_id = '$movie_director'";
$director = $people_fullname;
}
function get_leadactor(){
$query_a = "SELECT people_fullname" .
"FROM people " .
"WHERE people_id = '$movie_leadactor' ";
$leadactor = $people_fullname;
}
$movie_details = '';
$movie_name = $row['movie_name'];
$movie_director = $row['movie_director'];
$movie_leadactor = $row['movie_leadactor'];
get_director();
get_leadactor();
$movie_details .=<<<EOD
<tr>
<td>$movie_name</td>
<td>$director</td>
<td>$leadactor</td>
</tr>
EOD;
}
$movie_details .=<<<EOD
<tr>
<td> </td>
</tr>
<tr>
<td>Total :$num_movies Movies</td>
</tr>
EOD;
$movie_footer ="</table>";
$movie=<<<MOVIE
$movie_header
$movie_details
$movie_footer
MOVIE;
echo "There are $num_movies movies in our database"; ?>
Błąd wyswietla: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE people_id = '1'' at line 1.
Proszę o jakąs pomoc.