PHP - 查询和循环数据结构

时间:2016-12-14 19:45:19

标签: php html sql nested-loops

我正在开发一个具有多层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");
    }

1 个答案:

答案 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);