无法在列表框中显示数据库中的所有值

所以我有一个可以在其中添加/删除值的数据库。该表被命名为详细信息。下面的代码使用db_connect.php连接到数据库。

        <select name="areas">
                <?php 
                include "db_connect.php";
                $displayArea = "SELECT area FROM details";
                $sql = mysqli_query($link, $displayArea);
                while ($row =  mysqli_fetch_assoc($sql))
                {
                    echo "<option value=\"areas\">" . $row['area'] . "</option>";
                }
                ?>

        </select>

下拉列表采用area的第一个值,所以我知道它正在连接。但是我希望它显示数据库中的所有面积值。甚至以后会添加的新值。我怎样才能做到这一点?

评论
ueaque
ueaque

我认为使用PDO

把它放在你的db_connect.php中

<?php
   /* Connect to a MySQL database using driver invocation */
   $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
   $user = 'dbuser';
   $password = 'dbpass';

   try {
     $db = new PDO($dsn, $user, $password);
   } catch (PDOException $e) {
     echo 'Connection failed: ' . $e->getMessage();
   }

?>

我的示例代码

<?php 
   $stmt = $db->prepare("SELECT area FROM details");
   $stmt->execute();
   $result = $stmt->fetchAll(); 
?>

<select name="areas">
   <?php foreach($result as $row){ ?>
      <option value="areas"><?=$row['area'] ?></option>
   <?php } ?>
</select>
点赞
评论