2016-07-29 66 views
1

所以我有下拉菜單,我想用數組中的項填寫。問題是數組中只有唯一的東西是數據庫中的最後一項。 這是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> 

感謝您的幫助!

+0

改變'$名稱=陣列($行);''到$名稱[] = $行;' – Jeff

回答

1

此行分配值$名稱

$names= array($row); 

相反,你必須在訂單添加到陣列循環在HTML

$names[] = $row; 

另外聲明

$names = []; 

上述行

if(mysqli_num_rows($result) > 0) { 
0

你不必

$names= array($row); 

你需要

$names[]= $row; 
+0

太感謝你了! –

+1

爲避免代碼異味在輸入while之前用'$ names = array();'或'$ names = [];'啓動數組。 –

+0

謝謝你,我會用那個:) –

0

我們需要使用像的代碼:

$名稱=陣列)(;

$ names [] = $ row;

如果從一個數組($名)使用末($名)

0

只希望最後一個項目你很接近那裏!

變化$names= array($row);$names[]= $row;