我目前在PHP中使用mySQL。我的任務是列出來自給定搜索的每部電影的所有演員。搜索和結果正常工作。但是,我需要更改結果的顯示。我怎樣才能顯示每個電影標題只有一次?
$sql = "SELECT f.title, a.first_name, a.last_name
FROM film as f, actor as a, film_actor as fa
WHERE (f.title LIKE \"%$filter%\")
AND fa.actor_id = a.actor_id
AND f.film_id = fa.film_id
ORDER BY f.title;";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "The following movies match the filter value: "$filter"." . "</strong>" .
"</div>\n<br><br>\n";
// output data of each row
while(($row = $result->fetch_assoc())) {
echo
$row["title"] . " " . "stars" . " " .
$row["first_name"] . " " .
$row["last_name"] .
"</div>\n" .
"<br>\n";
}
} else {
echo "0 results";
}
與上面的代碼,我得到這個:
「下面的電影過濾器值相匹配: 「巧克力」
BUTTERFLY CHOCOLAT明星史泰龍NICK
BUTTERFLY CHOCOLAT明星MENA TEMPLE
BUTTERFLY CHOCOLAT明星KIM ALLEN
BUTTERFLY CHOCOLAT明星LISA MONROE
BUTTERFLY CHOCOLAT明星ED吉尼斯
BUTTERFLY CHOCOLAT明星BURT TEMPLE
BUTTERFLY CHOCOLAT星級瑪麗·凱特爾
CHOCOLAT HARRY明星JOE SWANK
CHOCOLAT HARRY明星RIP CRAWFORD
CHOCOLAT HARRY明星KIRK喬沃維奇
... ......「
當我應該得到這個:
BUTTERFLY CHOCOLAT stars ED GUINESS,MARY KEITEL,LISA MONROE,NICK STALLONE,BURT TEMPLE,MENA TEMPLE
巧克力HARRY明星RIP CRAWFORD,JANE傑克曼 ... ...
我試過SELECT DISTINCT但僅使得它更加複雜。
看看SQL的 「GROUP BY」 功能。 http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat – arkascha