Аккуратно отображать записи, связанные с идентификатором, в таблице

#php #html #sql

#php #HTML #sql

Вопрос:

Код и запрос работают, все записи отображаются правильно, однако все отображается в строке, а не аккуратно отображается ниже. Я пытался поместить их в список, но это как бы приводит к обратному результату; все это отображается в виде списка без реальной структуры.

 <?php       
    if($state == "Grass")
    { 
        $sql="SELECT t_grassland.landid, t_land.landLocation, t_grassland.grasslandAmount, t_livestock.livestockAnimal, t_livestock.livestockBreed 
            FROM(( t_grassland 
            INNER JOIN t_livestock ON t_grassland.livestockid = t_livestock.livestockid) 
            INNER JOIN t_land ON t_grassland.landID = t_land.landID)
            WHERE t_land.landid = '".$id."';";

        $result = mysqli_query($con, $sql) or die(mysqli_error());

        ?>     

        <table width="100%" border="1" style="border-collapse:collapse;">
            <thead>
                <tr>
                    <th><strong>ID</strong></th>
                    <th><strong>Location</strong></th>
                    <th><strong>Amount</strong></th>
                    <th><strong>Animal</strong></th>
                    <th><strong>Breed</strong></th>    
                </tr>
            </thead>          

            <tbody>
                <tr>
                    <?php while($row = mysqli_fetch_assoc($result))
                    { ?>
                        <td><?php echo $row["landid"]; ?> </td>
                        <td><?php echo $row["landLocation"]; ?> </td>
                        <td><?php echo $row["grasslandAmount"]; ?> </td>
                        <td><?php echo $row["livestockAnimal"]; ?> </td>
                        <td><?php echo $row["livestockBreed"]; ?> </td>
                    <?php 
                    } ?>
                </tr>
            </tbody>
        </table>
    <?php       
    } 
        else if ($state == "Growing")
    {
        growingDetails();
    }
    else
    {
        elseDetails();
    } 
?>
  

введите описание изображения здесь

Комментарии:

1. <tr> Должно быть внутри , пока

Ответ №1:

Как любезно указал @DinoCoderSaurus, переместите tr теги в внутри цикла, чтобы каждая запись в базе данных генерировала новую строку таблицы и, таким образом, результаты были вертикальными, а не все в одной строке

    <?php 
        while($row = mysqli_fetch_assoc($result)) { 
    ?>

    <tr>
        <td><?php echo $row["landid"]; ?> </td>
        <td><?php echo $row["landLocation"]; ?> </td>
        <td><?php echo $row["grasslandAmount"]; ?> </td>
        <td><?php echo $row["livestockAnimal"]; ?> </td>
        <td><?php echo $row["livestockBreed"]; ?> </td>
    </tr>

    <?php 
        } //end loop
    ?>
  

Комментарии:

1. Да, я люблю пропускать подобные вещи. 😀 Спасибо.