使用PHP将水平表替换为垂直表

使用PHP将水平表替换为垂直表,php,Php,我使用本文中建议的解决方案,用php创建了一个水平html表: 我的代码是这样的: $sql="SELECT Pr1, Pr2, Pr3, Pr4 FROM Tbdata ORDER BY Date DESC"; $result=mysqli_query($con,$sql); $row=mysqli_fetch_assoc($result); $Pr1 = ''; $Pr2 = ''; $Pr3 = ''; $Pr4 = ''; while($row = $result->fetch

我使用本文中建议的解决方案,用php创建了一个水平html表:

我的代码是这样的:

$sql="SELECT Pr1, Pr2, Pr3, Pr4 FROM Tbdata ORDER BY Date DESC";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);

$Pr1 = '';
$Pr2 = '';
$Pr3 = '';
$Pr4 = '';

while($row = $result->fetch_assoc())
{

    $Pr4 .= '<td>'.$row['Pr4'].'</td>';
    $Pr3 .= '<td>'.$row['Pr3'].'</td>';
    $Pr2 .= '<td>'.$row['Pr2'].'</td>';
    $Pr1 .= '<td>'.$row['Pr1'].'</td>';
}


echo '
    <table class="table">     
        <tbody>
            <tr>
             <td>'.$Pr4.'</td>
            </tr>
            <tr>
             <td>'.$Pr3.'</td>
            </tr>
             <tr>
             <td>'.$Pr2.'</td>
             </tr>
             <tr>
             <td>'.$Pr1.'</td>
            </tr>
    </tbody>
    </table>
'; 

?>
$sql=“按日期描述从Tbdata ORDER中选择Pr1、Pr2、Pr3、Pr4”;
$result=mysqli\u查询($con,$sql);
$row=mysqli\u fetch\u assoc($result);
$Pr1='';
$Pr2='';
$Pr3='';
$Pr4='';
而($row=$result->fetch_assoc())
{
$Pr4.=''.$row['Pr4'].';
$Pr3.=''.$row['Pr3'].';
$Pr2.=''.$row['Pr2'].';
$Pr1.=''.$row['Pr1'].';
}
回声'
“.$Pr4。”
“.$Pr3。”
“.$Pr2。”
“.$Pr1。”
'; 
?>

代码运行良好。唯一的问题是,我在查询中提取带有日期描述的数据。由于某些原因,最近日期的数据未显示在表中。我错过了什么?谢谢

您放弃第一行

$sql="SELECT Pr1, Pr2, Pr3, Pr4 FROM Tbdata ORDER BY Date DESC";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);   // Reads row, comment this out
把最后一行注释掉

此外,当您将每个项目包装在
标记中时,您不需要将它们包装在

<td>'.$Pr4.'</td>
“.$Pr4。”

因此,请删除其中的
标记。

放弃第一行

$sql="SELECT Pr1, Pr2, Pr3, Pr4 FROM Tbdata ORDER BY Date DESC";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_assoc($result);   // Reads row, comment this out
把最后一行注释掉

此外,当您将每个项目包装在
标记中时,您不需要将它们包装在

<td>'.$Pr4.'</td>
“.$Pr4。”

因此,请删除其中的
标记。

每次
fetch
调用都会使行计数提前1个位置。只有
while
获取调用。删除前面的一个(或者注释掉,正如我必须展示的那样)


每次
fetch
调用都会将行计数提前1个位置。只有
while
获取调用。删除前面的一个(或者注释掉,正如我必须展示的那样)


请为
Tbdata
表添加示例数据。然后,向我们展示您正在运行的查询的当前和预期输出。因此,当我命名一个列日期时,我总是在列名称周围使用backtics(
),就像这样
date`来确保MySQL知道我指的是一个列名称。我希望这就是问题所在。@Rolfie
date
没有保留。(注意
(R)
表示保留)。我分别将列名'date'更改为'Mdate'和查询。问题仍然存在。这将给您提供无效的HTML。它将在
中为您提供
。请为
Tbdata
表添加示例数据。然后,向我们展示您正在运行的查询的当前和预期输出。因此,当我命名一个列日期时,我总是在列名称周围使用backtics(
),就像这样
date`来确保MySQL知道我指的是一个列名称。我希望这就是问题所在。@Rolfie
date
没有保留。(注意
(R)
表示保留)。我分别将列名'date'更改为'Mdate'和查询。问题仍然存在。这将给您提供无效的HTML。它将在
中为您提供