Ik heb een boek geleend van de bieb (Wrox PHP) en ben begonnen met de oefeningen uit het boek te doen.
Het betreft een kleine testwebsite waarbij ik een lijstje met films heb, en daarbij op de titel van de film zou moeten kunnen klikken en dan details over die film te zien zou moeten krijgen. Dat lukt echter niet.
Ik heb de code EXACT zo geschreven als in het boek aangegeven staat maar toch krijg ik een syntaxfout.
Ik zit al twee uur mijn hoofd tegen de muur te slaan en het is nu niet leuk meer.
Misschien dat mijn mede-tweakers de fout kunnen vinden.
Hieronder de code en alvast bedankt!
Hugo.
N.B. De fout zit hem waarschijnlijk in movie_details.php.
De betreffende foutmelding is:
Tabel met films: (table2.php) (Deze werkt, dus zou dan toch foutloos moeten zijn?):
Film Details (movie_details.php) (Zodra ik naar deze pagina ga krijg ik de syntaxfout):
Sorry voor de lange post.
Het betreft een kleine testwebsite waarbij ik een lijstje met films heb, en daarbij op de titel van de film zou moeten kunnen klikken en dan details over die film te zien zou moeten krijgen. Dat lukt echter niet.
Ik heb de code EXACT zo geschreven als in het boek aangegeven staat maar toch krijg ik een syntaxfout.
Ik zit al twee uur mijn hoofd tegen de muur te slaan en het is nu niet leuk meer.
Misschien dat mijn mede-tweakers de fout kunnen vinden.
Hieronder de code en alvast bedankt!
Hugo.
N.B. De fout zit hem waarschijnlijk in movie_details.php.
De betreffende foutmelding is:
code:
1
| 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 '' at line 3 |
Tabel met films: (table2.php) (Deze werkt, dus zou dan toch foutloos moeten zijn?):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <?php // Define functions that will turn id numbers into labels: // 1: Take in the id of a director and return his/her full name: function get_director($director_id) { global $db; $query = 'SELECT people_fullname FROM people WHERE people_id = ' . $director_id; $result = mysql_query($query, $db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $people_fullname; } // 2: Take in the id of a lead actor and return his/her full name: function get_leadactor($leadactor_id) { global $db; $query = 'SELECT people_fullname FROM people WHERE people_id = ' . $leadactor_id; $result = mysql_query($query, $db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $people_fullname; } // 3: Take in the id of a movie type and return the meaningful textual description: function get_movietype($type_id) { global $db; $query = 'SELECT movietype_label FROM movietype WHERE movietype_id = ' . $type_id; $result = mysql_query($query, $db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $movietype_label; } ?> <?php // Connect to MySQL: $db = mysql_connect('localhost','bp6am','bp6ampass') or die('Unable to connect.'); // Select correct database: mysql_select_db('moviesite', $db) or die(mysql_error($db)); // Retrieve information: $query = 'SELECT movie_id, movie_name, movie_year, movie_director, movie_leadactor, movie_type FROM movie ORDER BY movie_name ASC, movie_year DESC'; $result = mysql_query($query, $db) or die(mysql_error($db)); // Determine number of rows in result: $num_movies = mysql_num_rows($result); ?> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Table 1</title> </head> <body> <?php $table = <<<ENDHTML <div style="text-align: center;"> <h2>Movie Review Database</h2> <table border="1" cellpadding="2" cellspacing="2" style="width: 70%; margin-left: auto; margin-right: auto;"> <tr> <th>Movie Title</th> <th>Year of Release</th> <th>Movie Director</th> <th>Movie Lead Actor</th> <th>Movie Type</th> </tr> ENDHTML; // Loop through the results and use above defined functions to turn id's into labels: while ($row = mysql_fetch_assoc($result)) { extract($row); $director = get_director($movie_director); $leadactor = get_leadactor($movie_leadactor); $movietype = get_movietype($movie_type); $table .= <<<ENDHTML <tr> <td><a href="movie_details.php?movie_id=$movie_id" title="Click here to find out more about $movie_name">$movie_name</a></td> <td>$movie_year</td> <td>$director</td> <td>$leadactor</td> <td>$movietype</td> </tr> ENDHTML; } $table .= <<<ENDHTML </table> <p>$num_movies Movies</p> </div> ENDHTML; echo $table; ?> </body> </html> |
Film Details (movie_details.php) (Zodra ik naar deze pagina ga krijg ik de syntaxfout):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
| <?php // Function to turn director id into full name: function get_director($director_id) { global $db; $query = 'SELECT people_fullname FROM people WHERE people_id = ' . $director_id; $result = mysql_query($query, $db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $people_fullname; } // Function to turn actor id into full name: function get_leadactor($leadactor_id) { global $db; $query = 'SELECT people_fullname FROM people WHERE people_id = ' . $leadactor; $result = mysql_query($query,$db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $people_fullname; } // Function to display textual movietype description: function get_movietype($type_id) { global $db; $query = 'SELECT movietype_label FROM movietype WHERE movietype_id = ' . $type_id; $result = mysql_query($query,$db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); extract($row); return $movietype_label; } // Function to calculate profits of the movie: function calculcate_differences($takings, $cost) { $difference = $takings - $cost; if ($difference < 0) { $color = 'red'; $difference = '$' . abs($difference) . 'million'; } elseif ($difference > 0) { $color = 'green'; $difference = '$' . $difference . 'million'; } else { $color = 'blue'; $difference = 'broke even'; } return '<span style="color: ' . $color . ';">' . $difference . '</span>'; } // Connect to MySQL database: $db = mysql_connect('localhost','bp6am','bp6ampass') or die('Unable to connect.'); // Select correct database: mysql_select_db('moviesite',$db) or die(mysql_error($db)); // Retrieve information: $query = 'SELECT movie_name, movie_year, movie_director, movie_leadactor, movie_type, movie_running_time, movie_cost, movie_takings FROM movie WHERE movie_id = ' . $GET_['movie_id']; $result = mysql_query($query,$db) or die(mysql_error($db)); $row = mysql_fetch_assoc($result); $movie_name = $row['movie_name']; $movie_director = get_director($row['movie_director']); $movie_leadactor = get_leadactor($row['movie_leadactor']); $movie_year = $row['movie_year']; $movie_running_time = $row['movie_running_time'] . ' mins.'; $movie_takings = $row['movie_takings'] . ' million'; $movie_cost = $row['movie_cost'] . ' million'; $movie_health = calculate_differences($row['movie_takings'],$row['movie_cost']); // Display the information: echo <<<ENDHTML <html> <head> <title>Details - $movie_name</title> </head> <body> <div style="text-align: center;"> <h2>$movie_name</h2> <h3><em>Details</em></h3> <table cellpadding="2" cellspacing="2" style="width:70%; margin-left:auto; margin-right:auto;"> <tr> <td><strong>Title</strong></td> <td>$movie_name</td> <td><strong>Release Year</strong></td> <td>$movie_year</td> </tr> <tr> <td><strong>Movie Director</strong></td> <td>$movie_director</td> <td><strong>Cost</strong></td> <td>$movie_cost<td/> </tr> <tr> <td><strong>Lead Actor</strong></td> <td>$movie_leadactor</td> <td><strong>Takings</strong></td> <td>$movie_takings<td/> </tr> <tr> <td><strong>Running Time</strong></td> <td>$movie_running_time</td> <td><strong>Health</strong></td> <td>$movie_health</td> </tr> </table> </div> </body> </html> ENDHTML; ?> |
Sorry voor de lange post.