首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据mysql查询显示特定代码?(php)

根据mysql查询显示特定代码?(php)
EN

Stack Overflow用户
提问于 2015-01-02 09:34:13
回答 2查看 234关注 0票数 0

我需要一点启动。

我们只是在学校学习php,我们有一个项目,我们正在制作一个电影浏览网站。因此,我们希望能够选择类型,并使用MySQL数据库显示该类型的所有电影。我们对SQL查询都很清楚,我的问题是如何根据SQL查询使浏览器显示电影?

让我解释一下。假设我们是movies.com

所以,你可以在你选择电影体裁的地方来看电影,而在你选择的电影类型中,你应该在这里看到电影。所以,点击“喜剧”应该会带你去movies.com/display,只给你看喜剧电影。选择“戏剧”应该带你去同一个网站(movies.com/display),并且只向你展示戏剧电影。

这里的问题是,我们只是不知道从哪里开始,当切换页面以显示特定的sql查询时,就变成了一个问题,这取决于您在上一页中选择了什么。我不知道如何谷歌它,但只要一个链接或建议将有帮助。我肯定不会太难的。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-02 10:34:32

从html开始选择一种类型:

代码语言:javascript
复制
<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,可以在其中获取提交的值并将其放入查询中:

代码语言:javascript
复制
// 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);
票数 1
EN

Stack Overflow用户

发布于 2015-01-02 09:56:46

我建议你有一张体裁表。这样,您就可以轻松地显示类型列表,供用户选择(即,您可以从该表中填充HTML窗体选择列表)。类型列表将有一个唯一的id (一个整数)和一个文本描述,所以当生成的列表显示描述时,它有一个值,即id。

那就有一张电影表(我猜你已经有了这个)。每部电影都将由一个唯一的整数id字段/识别。

最后是一张电影类型表。这只会将电影的id链接到电影类型的id。这样,你就可以有一个电影链接到几个类型,如果需要的话。

这样做还意味着您从HTML表单返回的值可以是整数,这些值很容易安全(只需使用php intval()函数)。

在使用中,您将提供一个类型列表作为选择列表。当用户选择一项并提交表单时,所选类型的id将返回给脚本。然后,脚本可以执行将表连接在一起的查询,检查类型是已返回到脚本的选定类型。

例如。

代码语言:javascript
复制
tbl_genres
id
genre_name

tbl_movies
id
movie_name

tbl_genre_movie
genre_id
movie_id

然后获取返回类型id的详细信息:-

代码语言:javascript
复制
$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']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27740015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档