私は現在PHPでmySQLを使用しています。私の仕事は、特定の検索から出てくる各映画のすべての俳優をリストすることです。検索と結果は正常に動作します。しかし、私は結果の表示を変更する必要があります。上記のコードではどのように各映画のタイトルを1回だけ表示できますか?
$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 STALLONE
BUTTERFLY CHOCOLATはMENAを主演TEMPLE
CHOCOLATはKIM ALLENを主演 BUTTERFLY
CHOCOLATはLISA MONROE
BUTTERFLYのCHOCOLATの星EDギネスを主演 BUTTERFLY BUTTERFLY CHOCOLATの星BURT TEMPLE
BUTTERFLYのCHOCOLATの星MARYカイテル
はCHOCOLAT HARRYはJOEスワンクの主演
CHOCOLAT HARRYの星は
すると「...クロフォード
CHOCOLAT HARRYはKIRKジョヴォヴィッチ
... を主演RIP
BUTTERFLY CHOCOLATの星EDギネス、MARYカイテル、LISA MONROE、NICKスタローン、バート・TEMPLE、MENA TEMPLE
:私はこれを取得する必要があります3210CHOCOLATE HARRYの星は、私はDISTINCT SELECTしようとしたが、それが唯一のそれはより複雑になります
CRAWFORD、JANE JACKMAN、 ... を... RIP。
にループを修正し、その後フィルム&
GROUP BY
にする必要がありますが機能 "BY GROUP" SQLのを見てみましょう。 http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html#function_group-concat – arkascha