我需要一点启动。
我们只是在学校学习php,我们有一个项目,我们正在制作一个电影浏览网站。因此,我们希望能够选择类型,并使用MySQL数据库显示该类型的所有电影。我们对SQL查询都很清楚,我的问题是如何根据SQL查询使浏览器显示电影?
让我解释一下。假设我们是movies.com
所以,你可以在你选择电影体裁的地方来看电影,而在你选择的电影类型中,你应该在这里看到电影。所以,点击“喜剧”应该会带你去movies.com/display,只给你看喜剧电影。选择“戏剧”应该带你去同一个网站(movies.com/display),并且只向你展示戏剧电影。
这里的问题是,我们只是不知道从哪里开始,当切换页面以显示特定的sql查询时,就变成了一个问题,这取决于您在上一页中选择了什么。我不知道如何谷歌它,但只要一个链接或建议将有帮助。我肯定不会太难的。
提前谢谢。
发布于 2015-01-02 10:34:32
从html开始选择一种类型:
<form action="display.php" method="POST">
<select name="genre">
<option value="drama">Drama</option>
<option value="comedy">Comedy</option>
<option value="thriller">Thriller</option>
<option value="horror">Horror</option>
</select>
<input type="submit" value="Submit"/>
</form>这里我们有一个带有下拉菜单的表单来选择这个类型。表单操作转到display.php
创建display.php,可以在其中获取提交的值并将其放入查询中:
// get the submitted value
$genre = $_POST['genre'];
// set a default genre if the POST genre is empty
if(empty($genre)) {
$genre = 'comedy';
}
// connect to database
$link = mysqli_connect("localhost", "my_user", "my_password", "db_name");
// check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: (" . mysqli_connect_errno() . ") ";
}
// build the query
$query = "SELECT * FROM movie WHERE genre = '".$genre."'"; // unsafe !!
$query = "SELECT * FROM movie WHERE genre = '".mysqli_real_escape_string($link, $genre)."'"; // safer
// execute query
$result = mysqli_query($link, $query);
// check result
if (!$result) {
echo 'Query unsuccessfull!';
}
// show values
while($row = mysqli_fetch_assoc($result)) {
echo $row['title'];
echo $row['description'];
echo "<br/>";
}
// close connection
mysqli_close($link);发布于 2015-01-02 09:56:46
我建议你有一张体裁表。这样,您就可以轻松地显示类型列表,供用户选择(即,您可以从该表中填充HTML窗体选择列表)。类型列表将有一个唯一的id (一个整数)和一个文本描述,所以当生成的列表显示描述时,它有一个值,即id。
那就有一张电影表(我猜你已经有了这个)。每部电影都将由一个唯一的整数id字段/识别。
最后是一张电影类型表。这只会将电影的id链接到电影类型的id。这样,你就可以有一个电影链接到几个类型,如果需要的话。
这样做还意味着您从HTML表单返回的值可以是整数,这些值很容易安全(只需使用php intval()函数)。
在使用中,您将提供一个类型列表作为选择列表。当用户选择一项并提交表单时,所选类型的id将返回给脚本。然后,脚本可以执行将表连接在一起的查询,检查类型是已返回到脚本的选定类型。
例如。
tbl_genres
id
genre_name
tbl_movies
id
movie_name
tbl_genre_movie
genre_id
movie_id然后获取返回类型id的详细信息:-
$sql = "SELECT *
FROM tbl_genres
INNER JOIN tbl_genre_movie
ON tbl_genres.id = tbl_genre_movie.genre_id
INNER JOIN tbl_movies
ON tbl_genre_movie.movie_id = tbl_movies.id
WHERE tbl_genres.id = ".intval($_POST['genre_id']);https://stackoverflow.com/questions/27740015
复制相似问题