我有一个数据库,其中的行在示例中有actors名称

row1       row2
movie1     actor1,actor2,actor3
movie2     actor2
movie3     actor1,actor3,actor4,actor6

现在我想在一个页面中显示一个演员列表,其中没有重复的演员。。
有可能。。。输出应该是
actor1
actor2(no repeate)
actor3
actor4

我在试着
function actors(){
    global $host, $dbname, $user, $pass;
    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    $STH = $DBH->prepare("SELECT DISTINCT actors FROM movies");

    $STH->execute();
    $STH->setFetchMode(PDO::FETCH_ASSOC);
    return $STH;
    }

$STH = actors();
     while (($row = $STH->fetch()) !== false) {
     echo $row['actors'].'</br>';
     }

但这不管用。。。请帮忙
编辑
我得到输出
actor1,actor2,actor3
actor2
actor1,actor3,actor4,actor6

最佳答案

如果您将所有参与者的名字都保存在一个字段中,我不知道一个简单的SQL查询可以做到这一点。这可能是不可能的,或者应该花费大量的CPU。
你需要重新设计你的表格如下。

movies
------
id
name

actors
------
id
name

movie_actor_link
----------------
movie_id
actor_id

这样做之后,列出参与者已经非常简单了,因为他们有自己的表和唯一的值。

关于php - 如何从不同的行中获得唯一的值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11247033/

10-11 02:52