使用PHP的水平表而不是垂直表

时间:2018-09-23 14:19:13

标签: php

我使用此帖子中建议的解决方案,使用php创建了一个水平html表:Printing out a table horizontal instead of vertical using PHP

我的代码是这样的:

$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>
'; 

?>

代码工作正常。唯一的问题是我在查询中使用Date DESC提取了数据。由于某些原因,最近日期的数据未显示在表格上。我在这里想念什么?请谢谢。

2 个答案:

答案 0 :(得分:1)

您丢弃第一行...

$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>标签中时,也就不需要它们了……

<td>'.$Pr4.'</td>

因此,删除其中的<td></td>标签。

答案 1 :(得分:1)

每个fetch调用都会提高行计数1的位置。仅具有while提取调用。删除前一个(或将其注释掉,如我所显示的那样)。

//$row=mysqli_fetch_assoc($result);

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

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