php mysql中如何将行值动态转换为列名

php mysql中如何将行值动态转换为列名,php,mysql,dynamic,pivot,crosstab,Php,Mysql,Dynamic,Pivot,Crosstab,我有一个名为“pivo”的表,其中有列(ID、名称、课程、分数)。我想将“Name”列数据转换为行标题,“Course”列数据转换为列标题,“Marks”列数据转换为从“Course”列数据转换的列的行数据。记住在选择查询中忽略“ID”列及其数据 我试过这个: // Select Students with their Marks Dynamically $SelectQuery3 = mysqli_query($connection, "SELECT distinct Course FROM

我有一个名为“pivo”的表,其中有列(ID、名称、课程、分数)。我想将“Name”列数据转换为行标题,“Course”列数据转换为列标题,“Marks”列数据转换为从“Course”列数据转换的列的行数据。记住在选择查询中忽略“ID”列及其数据

我试过这个:

// Select Students with their Marks Dynamically

$SelectQuery3 = mysqli_query($connection, "SELECT distinct Course FROM pivo");
$numrows3     = mysqli_num_rows($SelectQuery3);
if ( ! $SelectQuery3)
{
    die ("Sorry, database selection failed1. " . mysqli_connect_error());
}
else if ($numrows3 != 0)
{
    echo "  
        <caption><h3>Students with their Marks Dynamically Head</h3></caption>
        <table border = '1' style = 'border-collapse: collapse;'>
            <thead>
                <tr>
                    <th>Name</th>
        ";
    $Crs = "";
    while ($display3 = mysqli_fetch_array($SelectQuery3))
    {
        $Crs = $display3 [0];
        echo "<th>{$display3 ['0']}</th>";
    }
    echo "
                    <th>Total</th>
                    <th>Average</th>
                </tr>
            </thead>
            <tbody>";

    $SelectQuery4 = mysqli_query($connection, "select `Name`,
                sum(case when `Course` = '$Crs' then `Marks` else 0 end) '$Crs'
                from pivo group by `Name`");
    $numrows4     = mysqli_num_rows($SelectQuery4);
    if ( ! $SelectQuery4)
    {
        die ("Sorry, database selection failed2. " . mysqli_connect_error());
    }
    else if ($numrows4 != 0)
    {
        while ($display4 = mysqli_fetch_array($SelectQuery4))
        {
            echo "
                            <tr>
                                <td>{$display4 ['0']}</td>
                                <td>{$display4 ['1']}</td>
                            </tr>";
        }
    }
    else
    {
        echo "<div class='alert alert-info'> Sorry, no student found yet. </div>";
    }

    echo "          
            </tbody>
        </table>";
}
else
{
    echo "<div class='alert alert-info'> Sorry, no course found yet. </div>";
}
//动态选择有分数的学生
$SelectQuery3=mysqli_query($connection,“从pivo中选择不同的课程”);
$numrows3=mysqli\u num\u行($SelectQuery3);
如果(!$SelectQuery3)
{
die(“对不起,数据库选择失败1。”.mysqli_connect_error());
}
else if($numrows3!=0)
{
回声“
有分数的学生
名称
";
$Crs=“”;
而($display3=mysqli\u fetch\u数组($SelectQuery3))
{
$Crs=$display3[0];
回显“{$display3['0']}”;
}
回声“
全部的
平均值
";
$SelectQuery4=mysqli\u query($connection,“select`Name`),
求和(当'Course`='$Crs'然后'Marks`else 0 end'时的情况)'$Crs'
来自pivo组,按“名称”命名;
$numrows4=mysqli\u num\u行($SelectQuery4);
如果(!$SelectQuery4)
{
die(“对不起,数据库选择失败2。”.mysqli_connect_error());
}
else if($numrows4!=0)
{
而($display4=mysqli\u fetch\u数组($SelectQuery4))
{
回声“
{$display4['0']}
{$display4['1']}
";
}
}
其他的
{
echo“对不起,还没有找到学生。”;
}
回声“
";
}
其他的
{
echo“抱歉,尚未找到任何路线。”;
}
并得到错误的结果

有人可以帮忙


谢谢。

只需使用基本的选择和处理应用程序代码中的显示内容,我不明白。你能举个例子吗。