我正在开发一个具有多层PHP任务的项目,其中一个将MySQL查询与PHP结构相结合,将结果打印到文本文件中。我有连接,txt文件创建,查询已完成并成功运行。我的问题是在数据结构的PHP循环和嵌套循环中迭代/循环结构的结构并正确打印它们。数据结构循环是正确的:
$userQuery = "SELECT title, last_name, first_name
FROM film_actor
LEFT JOIN film f
ON film_actor.film_id = f.film_id
LEFT JOIN actor a
ON a.actor_id = film_actor.actor_id
ORDER BY title";
$filmActors =fopen("FilmActors.txt","w");
while ($row = mysqli_fetch_assoc($result))
{
$title = $row['title'];
$last = $row['last_name'];
$first = $row['first_name'];
$filmActor["$title"][] = "$last".","."$first";
}
嵌套循环正确地为键值开始,但我用来循环和打印结果的每一步只打印单词'array'而不是元素。我的SQL查询用于列出电影名称和电影中的演员的数据库,因此其中一些电影中列出了5个以上的演员。我的目标是将它们打印成如下文本文件:电影名称:演员数量:演员1姓氏,演员1名字;等
以下是我为嵌套循环成功启动的内容:
while ($k_v = each($filmActor)) {
foreach($filmActor as $k_v => $value) {
//$k_v => $value;
fputs($filmActors, "$title:$value\n");
}
答案 0 :(得分:0)
最简单的解决方案如下所示:
...
$filmActors = fopen("FilmActors.txt","w");
$text = '';
foreach ($filmActor as $film_title => $actors) {
$text .= $film_title . ':' . count($actors) . ':' . implode(';', $actors) . PHP_EOL;
}
fwrite($filmActors, $text);
fclose($filmActors);