Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP、Mysql行数据分离(,)和打印<;李>;_Php_Mysql - Fatal编程技术网

PHP、Mysql行数据分离(,)和打印<;李>;

PHP、Mysql行数据分离(,)和打印<;李>;,php,mysql,Php,Mysql,我有一个电影数据库。例如: table: movies Id - Title - Actors 2 - Avangers - 2,5,11,16 table: actors Id - Name 2 - Jason 5 - Emma 11 - Stuart 16 - Thomas 我的问题是:我怎样才能用.li.打印这个呢 Avengers: *Jason *Emma *Stuart *Thomas 如果必须将演员作为逗号分隔的Id列

我有一个电影数据库。例如:

table: movies
Id  -  Title  -  Actors
 2  - Avangers -  2,5,11,16

table: actors
Id  -  Name
 2  -    Jason
 5  -    Emma
 11 -    Stuart
 16 -    Thomas
我的问题是:我怎样才能用.li.打印这个呢

Avengers: 
*Jason
*Emma
*Stuart 
*Thomas

如果必须将演员作为逗号分隔的Id列表保存在电影表中,那么我能想到的最好方法是:在一个查询中获取该列,提取不同的Id,对每个Id运行一个查询以查找名称

正如一位评论员所说,这不是最好的DB设计。我建议从movie表中删除actor列,并使用第三个表作为movie-actor关系:

table:movieactor

movie  actor
------------
2      2
2      5
2      11
2      16
然后,您可以运行一个内部联接来查找在给定电影中出现的演员的姓名

SELECT actors.Name from movieactor INNER JOIN actors ON movieactor.actor = actors.Id WHERE movieactor.movie = 2

如果必须将演员作为逗号分隔的Id列表保存在电影表中,那么我能想到的最好方法是:在一个查询中获取该列,提取不同的Id,对每个Id运行一个查询以查找名称

正如一位评论员所说,这不是最好的DB设计。我建议从movie表中删除actor列,并使用第三个表作为movie-actor关系:

table:movieactor

movie  actor
------------
2      2
2      5
2      11
2      16
然后,您可以运行一个内部联接来查找在给定电影中出现的演员的姓名

SELECT actors.Name from movieactor INNER JOIN actors ON movieactor.actor = actors.Id WHERE movieactor.movie = 2

谢谢你的编辑,我一直在琢磨这是一个糟糕的数据库设计。您应该跳过
电影
上的
演员
列,并创建一个新表(例如
电影演员
)来保存n-n关联(它将有两列,
电影id
演员id
)。然后你想要的就变得非常简单了(一个简单的SQL连接)。谢谢你的编辑,我已经开始琢磨这是一个糟糕的数据库设计。您应该跳过
电影
上的
演员
列,并创建一个新表(例如
电影演员
)来保存n-n关联(它将有两列,
电影id
演员id
)。然后您想要的就变得非常简单了(一个简单的SQL连接)。谢谢。你帮了我,不客气。如果你满意,请考虑进行投票和/或接受这个答案。谢谢。你帮了我,不客气。如果你满意,请考虑进行投票和/或接受这个答案。