PHP,Mysql行数据分离(,)和打印<li> </li>

时间:2013-11-26 04:46:58

标签: 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.s这样打印出来:

Avengers: 
*Jason
*Emma
*Stuart 
*Thomas

1 个答案:

答案 0 :(得分:1)

如果你必须将电影表中的演员保持为逗号分隔的Id列表,那么我能想到的最好的是:在一个查询中获取该列,提取不同的Id,为每个Id运行一个查询找出这个名字。

正如一位评论员所说,这不是最好的数据库设计。我建议从电影表中删除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