Я использую mySQL в PHP. Моя задача - перечислить всех участников для каждого фильма, который появляется из определенного поиска. Поиск и результаты работают нормально. Однако мне нужно изменить отображение результатов.Как я могу отображать каждый фильм только один раз?
$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";
}
С выше коде, я получаю это:
«Следующие фильмы соответствуют значения фильтра: " Choco"
BUTTERFLY CHOCOLAT звезды НИК Сталлоне
BUTTERFLY CHOCOLAT звезды MENA ХРАМ
BUTTERFLY CHOCOLAT звезды КИМ ALLEN
BUTTERFLY CHOCOLAT звезды LISA Monroe
ButterFly Chocolat звезды ED Гинесса
BUTTERFLY Chocolat звезды Берт ХРАМ
BUTTERFLY CHOCOLAT звезды MARY Кейтель
CHOCOLAT ГАРРИ звезды JOE Суонк
CHOCOLAT ГАРРИ звезды RIP КРОУФОРД
CHOCOLAT ГАРРИ звезды KIRK Йовович
... ... "
When Я должен получать это:
BUTTERFLY Chocolat звезды ED Гинесса, МЭРИ Кейтель, LISA MONROE, НИК Сталлоне, Берт ХРАМ, MENA ХРАМ
ШОКОЛАД ГАРРИ звезды 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