手风琴内的php循环未正确显示

手风琴内的php循环未正确显示,php,for-loop,foreach,while-loop,accordion,Php,For Loop,Foreach,While Loop,Accordion,在我的数据库中有一个名为publi的表,在这个表中有两列pub_year和pub_publi publi内容表的示例: 2016 内容(2016)1 2016 内容(2016)2 2016 内容(2016)3 2015 内容(2015)1 2015 内容(2015)2 您按发布年份对数据进行分组的方式是正确的,但从您的示例来看,您仅在组发生变化时输出信息 我会提出类似的建议: <?php $previous = false; while ($va

在我的数据库中有一个名为publi的表,在这个表中有两列pub_year和pub_publi

publi内容表的示例:


2016
内容(2016)1
2016
内容(2016)2
2016
内容(2016)3
2015
内容(2015)1
2015
内容(2015)2

您按发布年份对数据进行分组的方式是正确的,但从您的示例来看,您仅在组发生变化时输出信息

我会提出类似的建议:

    <?php
        $previous = false;
        while ($val = mysqli_fetch_array($result)) {

            // when group is changing, end previous and start new
            if ($previous <> $val['pub_year']) {

                // end previous group html markup
                if ($previous !== false) {
                    echo '</div>';
                }

                $previous = $val['pub_year'];
                $year = $previous;

                echo '<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#' . $year . '>' . $year . '</button>';
                echo '<div id="' . $year . '" class="collapse">';
            }

            // always output data inside group
            $Temp = highlight("person1",$val['pub_publi'],"0000FF");
            $Temp = highlight("person2",$Temp,"0000FF");
            $Temp = highlight("person3",$Temp,"0000FF");
            $Temp = highlight("person4",$Temp,"0000FF");
            $Temp = highlight("person5",$Temp,"0000FF");
            $Temp = highlight("person6",$Temp,"0000FF");
            $Temp = highlight("person7",$Temp,"0000FF");
            $Temp = highlight("person8",$Temp,"0000FF");
            $Temp = highlight("person9",$Temp,"0000FF");
            $Temp = highlight("person10",$Temp,"0000FF");

            echo $Temp . '<br>';
        }

        // end last group html markup
        if ($previous !== false) {
            echo '</div>';
        }
?>

您按发布年份分组数据的方式是正确的,但从您的示例来看,您仅在组发生变化时输出信息

我会提出类似的建议:

    <?php
        $previous = false;
        while ($val = mysqli_fetch_array($result)) {

            // when group is changing, end previous and start new
            if ($previous <> $val['pub_year']) {

                // end previous group html markup
                if ($previous !== false) {
                    echo '</div>';
                }

                $previous = $val['pub_year'];
                $year = $previous;

                echo '<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#' . $year . '>' . $year . '</button>';
                echo '<div id="' . $year . '" class="collapse">';
            }

            // always output data inside group
            $Temp = highlight("person1",$val['pub_publi'],"0000FF");
            $Temp = highlight("person2",$Temp,"0000FF");
            $Temp = highlight("person3",$Temp,"0000FF");
            $Temp = highlight("person4",$Temp,"0000FF");
            $Temp = highlight("person5",$Temp,"0000FF");
            $Temp = highlight("person6",$Temp,"0000FF");
            $Temp = highlight("person7",$Temp,"0000FF");
            $Temp = highlight("person8",$Temp,"0000FF");
            $Temp = highlight("person9",$Temp,"0000FF");
            $Temp = highlight("person10",$Temp,"0000FF");

            echo $Temp . '<br>';
        }

        // end last group html markup
        if ($previous !== false) {
            echo '</div>';
        }
?>