我不知道该怎么问这个问题,我刚刚开始学习PHP和Mysql,我有很多麻烦做一些很容易的事情。
假设我在Mysql的演员和电影中有两个表。
演员有ID和NAME,电影也有相同的ID和NAME。
在本例中,假设我们的演员是1布拉德Pitt、2 Edward Norton和3 Jack Nicholson
这两部电影分别是《搏击俱乐部》和《十三罗汉》。
布拉德·皮特和爱德华·诺顿在《搏击俱乐部》里,布拉德·皮特在《十三罗汉》里,而杰克·尼科尔森没有出现在这些电影里。
我怎样才能把演员链接到我的Mysql数据库中的电影?我怎样才能用PHP显示他们?
我感谢任何帮助,我迷失在这一个!谢谢你的关注!
4条答案
按热度按时间wbgh16ku1#
您可以使用
JOINS
执行此操作。在一个简短的介绍中,让我们有另一个表
relations
。在这个表中,电影和演员是相关的。PRIMARY KEY
将是两个ID
的组合。现在我们可以有一个包含这两个ID的关系表。
这样,电影1将同时具有演员1和2。
SQL查询
yyyllmsg2#
在这种情况下,您具有多对多关系,这意味着,一个演员可能出现在许多电影中,而一部电影可能具有许多演员。
在这种情况下,您要做的是生成一个中间表,比如“电影_演员”,它应该有2列电影_ID和演员_ID
这是一个很好的起点
例如,如果你想知道某个演员的所有电影,你可以这样查询:
下面是如何创建表CREATE TABLE MOVIE_ACTOR(
movie_id
int,actor_id
int);祝你好运!
dffbzjpn3#
您需要一个连接表
ActorMovieMatch
这个表将有两个字段
ActorID
和MovieID
,它们是其他表中主键ID的外键。更新数据库时,您将更新此表,而不更新其他表。
wf82jlnq4#
首先,你需要建立你的表结构。这里有一个可能适合你。我把它们以图表的形式展示出来是为了可读性;你必须为所有这些创建MySQL语句。
首先,您的表类型:
接下来是表的值:
请注意您是如何简单地插入StarredIn中连接的实体的ID的。这是关系系统的核心和灵魂。数据分布在表中,通过ID连接。这允许您根据需要多次放置任何参与者。它还保护您免受名称更改之类的事情的影响,如果有一天BraddPitt决定要更改他的名称,ID仍然指向同一个实体(只需修改actor表)。
此外,虽然不是必需的,但您需要主键来确保不会添加任何重复项。我建议为Movie和Actor使用ID主键,为StarredIn使用复合主键(ActorID,MovieID)。
至于PHP部分;我建议阅读mysqli或PDO,因为它们告诉你如何将PHP连接到MySQL。这里有一些链接可以帮助你入门:
密码:http://php.net/manual/en/book.mysqli.php
PDO:http://php.net/manual/en/book.pdo.php