Php 仅显示数组中的最后一项

Php 仅显示数组中的最后一项,php,mysqli,Php,Mysqli,所以我有一个下拉菜单,我想用数组中的项目填充它。问题是数组中唯一的东西是数据库中的最后一个项目。 这是PHP: $link = mysqli_connect("79.170.44.77","cl38-baza","3g!cwDwxm","cl38-baza"); //LOADING DATA if(mysqli_connect_error()) { die("Database Connection Error"); } else { $query = "SELECT name F

所以我有一个下拉菜单,我想用数组中的项目填充它。问题是数组中唯一的东西是数据库中的最后一个项目。 这是PHP:

$link = mysqli_connect("79.170.44.77","cl38-baza","3g!cwDwxm","cl38-baza");
//LOADING DATA
if(mysqli_connect_error()) {
    die("Database Connection Error");
} else {
    $query = "SELECT name FROM People ";
    $result = mysqli_query($link,$query);

    if(mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            $names= array($row);

        }
    } else {
        echo "no result!";
    }

}
HTML是:

                <select class="form-control select2" style="width: 100%;">
                  <option selected="selected">Choose one</option>
                  <?php

                    foreach($names as $name) { ?>
                      <option value="<?php echo $name['name'] ?>"><?php echo $name['name'] ?></option>
                    <?php
                    } ?>

                </select>

选一个
谢谢你的帮助

你不需要

$names= array($row);
你需要

$names[]= $row;

此行为$names赋值

$names= array($row);
相反,您必须添加到数组中才能在HTML中循环

$names[] = $row;
也宣布

$names = [];
线上

if(mysqli_num_rows($result) > 0) {

我们需要使用如下代码:

$names=array()

$names[]=$row


如果您只需要数组($names)中的最后一项,请使用end($names)

您就快到了

更改
$names=array($row)

$names[]=$row

更改
$names=array($row)
$names[]=$row非常感谢!!为避免代码气味,请使用
$names=array()启动数组
$names=[]在输入while之前。谢谢u-nik..我将使用:)