2017-09-30 23 views
4

我有列表的列表:id和名稱。我想將它們顯示在下拉菜單中。它們被存儲在以下$categoriesArray無法打印數據表中的mysql表格到下拉列表

array (size=6) 
    0 => 
    array (size=2) 
     'id' => string '1' (length=1) 
     'name' => string 'Name 1' (length=12) 
    1 => 
    array (size=2) 
     'id' => string '2' (length=1) 
     'name' => string 'Name 2' (length=14) 
    2 => 
    array (size=2) 
     'id' => string '3' (length=1) 
     'name' => string 'Name 3' (length=10) 
    3 => 
    array (size=2) 
     'id' => string '4' (length=1) 
     'name' => string 'Name 4' (length=14) 
    4 => 
    array (size=2) 
     'id' => string '5' (length=1) 
     'name' => string 'Name 5' (length=20) 
    5 => 
    array (size=2) 
     'id' => string '6' (length=1) 
     'name' => string 'Name 6' (length=14) 

我想,以顯示與選項值的ID和選項名稱的名稱下拉。 我試過方式如下:

$sql = "SELECT * FROM categories"; 
       $result = $conn->query($sql); 
       $categoriesArray = array(); 


       if ($result->num_rows > 0) { 
        echo "<select>"; 
        // output data of each row 
        while($row = $result->fetch_assoc()) { 
         array_push($categoriesArray, $row); 
         echo "<option>$categoriesArray[0]['name']</option>"; 
        } 
        echo "</select>"; 
       } 

,但不知道如何打印的所有元素。有任何想法嗎 ?

回答

4

您需要正確連接並相應地使用idname

echo "<option>$categoriesArray[0]['name']</option>"; 

應該改變

$i=0; 
while($row = $result->fetch_assoc()) { 
echo "<option id='".$row[i]['id']."'>".$row[i]['name']."</option>"; 
i++; // traverse next array 
} 
2

你可以嘗試這樣的方式也是,其實我做這種方式。

//push row data here 
while ($row = $result->fetch_assoc()) { 
     $categoriesArray[$row["id"]]= $row["name"]; 
} 

echo "<select>"; 
echo "<option selected='selected'>Choose one</option>"; 

//make your dropdown here 
foreach($categoriesArray as $id=>$name) { 
    echo "<option value=$id>$name</option>"; 
} 
echo "</select>";