while循环重复相同的数据

时间:2017-12-21 00:29:03

标签: php mysql arrays database syntax

我试图通过while循环从我的数据库中提取数据。 代码会提取正确数量的SQL行,但是它会一遍又一遍地重复相同的条目。

我已经花了几个小时摆弄这段代码,似乎无法让它发挥作用。 任何建议都将不胜感激。

    <?php 
    $sql = "SELECT * FROM grow_details";
    $query = $conn->query($sql);

       $grows = array();
       while ($grow = mysqli_fetch_assoc($query)) {
           $grows[] = $grow;
       } 
       foreach($grows as $grow) {
    ?>
    <div>
        <h2><?php echo $name; ?></h2>
        <table>
            <tr>
                <td><label for="datePlanted">Date Planted:</label></td>
                <td><?php echo $datePlanted; ?></td>
            </tr>
            <tr>
                <td><label for="strain">Strain:</label></td>
                <td><?php echo $strain; ?></td>
            </tr>
            <tr>
                <td><label for="toMaturity">Days to mature:</label></td>
                <td><?php echo $toMaturity; ?></td>
            </tr>
            <tr>
                <td><label for="type">Type:</label></td>
                <td><?php echo $type; ?></td>
            </tr>
            <tr>
                <td><label for="gender">Gender:</label></td>
                <td><?php echo $gender; ?></td>
            </tr>
            <tr>
                <td><label for="medium">Medium:</label></td>
                <td><?php echo $medium; ?></td>
            </tr>
        </table>
    </div>
    <?php 
        }
?>

输出:

T3
Date Planted:   12/20/2017
Strain:     Kiwi
Days to mature:     50
Type:   ?
Gender:     ?
Medium:     Aero
<br>
T3
Date Planted:   12/20/2017
Strain:     Kiwi
Days to mature:     50
Type:   ?
Gender:     ?
Medium:     Aero
<br>
T3
Date Planted:   12/20/2017
Strain:     Kiwi
Days to mature:     50
Type:   ?
Gender:     ?
Medium:     Aero

1 个答案:

答案 0 :(得分:3)

你没有使用你在循环中迭代的数组中的任何东西。您每次只打印相同的$name$datePlanted等变量。 echo $name应为echo $grow['name'],其他所有变量均相似。