【问题标题】:PHP - Queries and looping through data structurePHP - 查询和循环数据结构
【发布时间】:2016-12-14 19:45:19
【问题描述】:

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

对于键值,嵌套循环正确开始,但我用来循环和打印结果的每一步都只打印单词“数组”而不是元素。我的 SQL 查询用于列出电影名称和电影演员的数据库,因此其中一些电影列出了 5 个以上的演员。我的目标是将它们打印到一个文本文件中,如下所示: 电影名称:演员人数:演员 1 的姓氏,演员 1 的名字;等等

这是我为嵌套循环成功启动的内容:

    while ($k_v = each($filmActor)) {
        foreach($filmActor as $k_v => $value) {
        //$k_v => $value;
        fputs($filmActors, "$title:$value\n");
    }

【问题讨论】:

    标签: php html sql nested-loops


    【解决方案1】:

    最简单的解决方案如下:

    ...
    
    $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);
    

    【讨论】:

    • 谢谢,好像明白了!一开始我很困惑我需要用“foreach”循环做什么。非常感谢
    猜你喜欢
    • 2014-01-08
    • 2011-04-28
    • 1970-01-01
    • 2011-06-18
    • 2015-05-31
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多