2017-09-30 6 views
4

カラムがあるカテゴリテーブルidとnameがあります。私はドロップダウンメニューにそれらを表示したい。彼らは、次の$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>"; 
関連する問題