Php:输出列中的所有内容,而不仅仅是第一项

Php:输出列中的所有内容,而不仅仅是第一项,php,Php,我的数据库中有两列,年份和内容我想按年份对内容进行分组(我有很多内容,而且很多年,不仅仅是2015年和2016年为例) 因此,我将以html格式输出此结果 2016 数据库中与2016年相同的列的所有内容 2015 数据库中与2015相同的列的所有内容 试试这个更新的代码: <?php $output=''; $query1 = "SELECT pub_year FROM publi where pub_type=0 GROUP BY pub_year order b

我的数据库中有两列,年份和内容我想按年份对内容进行分组(我有很多内容,而且很多年,不仅仅是2015年和2016年为例)

因此,我将以html格式输出此结果


2016
数据库中与2016年相同的列的所有内容
2015
数据库中与2015相同的列的所有内容

试试这个更新的代码:

<?php
    $output='';

    $query1 = "SELECT pub_year FROM publi where pub_type=0 GROUP BY pub_year order by pub_year DESC";
    $result1 = mysqli_query($connection, $query1);

    while ($val1 = mysqli_fetch_array($result1))
    {
        $year = $val1['pub_year'];
        $query2 = "SELECT * FROM publi where pub_year=$year AND pub_type=0 order by pub_year DESC, pub_publi ";
        $result2 = mysqli_query($connection, $query2);

        $output.=$year.'<br>';  // storing each year value one time

        while ($val2 = mysqli_fetch_array($result2))
        {
            $output.=$val2['pub_type'].', '.$val2['pub_publi'].'<br><br>';
        }
    }
    echo $output;
?>

这个代码对我有用

    <?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>';
        }
?>

在检查不同年份的
if
之外没有代码,因此,当然,只有当年份与前一行相比发生变化时,才会打印内容。我该怎么做才能使其正常工作?谢谢,我也试过了,但我想做的是将年份输出一次,这样我就可以在手风琴中使用它,它将按20162015年等进行排序。。但它并没有像预期的那样工作,因为打开内容的div被分配给列中的第一个lign“value”,或者只有第一个lign“value”出现,而其他的没有出现
    <?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>';
        }
?>