如何从sql数据库获取多个字段并将其显示到不同的html语句中

问题描述 投票:-2回答:1

我正在从数据库中获取数据,我想在下拉菜单中显示一个字段,其余部分(根据下拉菜单中的选定用户)在其下面的段落中显示,因为我尝试在下面的代码中执行此操作,请缺少什么?

<div class="w3-display-bottomleft w3-container w3-text-black">

<?php
    echo "<select name='users' id='users' placeholder='Employee'>";
    while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC)) {
        echo "<option value='" . $row['id'] ."'>" . $row['name'] ."</option>";
    }
    echo "</select>";

    echo"</div>";
    echo"</div>";
    echo"<div class='w3-container'>";
    while ($row = mysqli_fetch_array( $result, MYSQLI_ASSOC)) {

        echo "<p><i class='fa fa-briefcase fa-fw w3-margin-right w3-large w3-text-teal'></i>". $row['department'] ."</p>";
        echo "<p><i class='fa fa-home fa-fw w3-margin-right w3-large w3-text-teal'></i>Malta</p>";
        echo "<p><i class='fa fa-envelope fa-fw w3-margin-right w3-large w3-text-teal'></i>[email protected]</p>";
    }

?>
      <hr>
php html sql
1个回答
0
投票

不是使用两次调用mysqli_fetch_array()会消耗整个结果集,而是使用mysqli_fetch_all()获取结果数组,然后对这些结果使用foreach循环而不是while循环。

<div class="w3-display-bottomleft w3-container w3-text-black">

<?php
    $my_rows = mysqli_fetch_all($result, MYSQLI_ASSOC);
    echo "<select name='users' id='users' placeholder='Employee'>";
    foreach($my_rows as $row) {
        echo "<option value='" . $row['id'] ."'>" . $row['name'] ."</option>";
    }
    echo "</select>";

    echo"</div>";
    echo"</div>";
    echo"<div class='w3-container'>";
    foreach($my_rows as $row) {

        echo "<p><i class='fa fa-briefcase fa-fw w3-margin-right w3-large w3-text-teal'></i>". $row['department'] ."</p>";
        echo "<p><i class='fa fa-home fa-fw w3-margin-right w3-large w3-text-teal'></i>Malta</p>";
        echo "<p><i class='fa fa-envelope fa-fw w3-margin-right w3-large w3-text-teal'></i>[email protected]</p>";
    }

?>
      <hr>
© www.soinside.com 2019 - 2024. All rights reserved.