如何将sql数据放在php表中


How to put sql data in php table

我试图在php中制作一个表,其中有三列显示数据库中的图像,每个图像下都应该有图像的描述。描述也是从数据库中检索的。我的代码现在可以很好地处理图像部分,它显示三个相邻的图像,然后在新行中显示接下来的三个图像,依此类推

然而,我想要这样的东西:

图像图像
DESC DESC DESC
图像图像
DESC DESC DESC

当我取消注释第26行时

<br/>
( //echo "< td style='background-color:#FF0004'>" . $data. "</td>";)
<br/>

我得到图像旁边的描述,就像这个

图像DESC图像DESC图片DESC
图像描述图像描述图像描述符

我还尝试启动并创建新行<tr><td><tr><tr>在第50行之后,当图像行关闭时,再次获取sql数据,但只获取desc,但当我这样做时,我没有得到任何结果(我100%确信我的sql中有数据)。我如何才能将描述放在图像上方,而不是放在图像旁边

function getImg(){
    $conn = connect(); 
    if (!isset($_GET['startrow']) or !is_numeric($_GET['startrow'])) {
        $startrow = 0;
    } else {
        $startrow = (int)$_GET['startrow'];
    }
   $sql = "SELECT * FROM draft LIMIT $startrow, 6";
   $getdata = mysqli_query($conn,$sql) 
        or die(mysqli_error());
    $cell_img = mysqli_num_rows($getdata);
    $i=0;
    $per_row = 3; 
    echo "<table><tr>";
    while ($row=mysqli_fetch_assoc($getdata)) {
        echo "<td><img src='".$row['image']."'/ ></td>";
        $data = $row['desc'];  
        //echo "<td style='background-color:#FF0004'>" . $data. "</td>";
        if (++$i % $per_row==0 && $i >0 && $i <$cell_img) {
            echo "</tr><tr>"; 
        }                
    }
    echo "<tr>";
    echo "</tr>";
    for ($x=0; $x<$per_row-$i % $per_row; $x++) {  
        echo "<td></td>";       
    }
    echo "</tr>";
    echo "</table>";
    echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.($startrow+5).'">Next >>></a>';
    $prev = $startrow - 5;
    if ($prev >= 0)
        echo '<a href="'.$_SERVER['PHP_SELF'].'?startrow='.$prev.'"> <<<< Previous</a>';
}

使用以下代码:

$data = '';
while ($row=mysqli_fetch_assoc($getdata)) {
     echo "<td><img src='".$row['image']."'/ ></td>";
     $data .= '<td>'.$row['desc'].'</td>';
     if (++$i % $per_row==0 && $i >0 && $i <= $cell_img) {
          echo "</tr><tr>$data</tr><tr>"; 
          $data = '';
     }
 }