2014-06-23 51 views
0

我試圖做一個網站的地毯類型下拉列表,但每次我嘗試從我的MySQL服務器拉數據時,它將地毯類型放在3個單獨的選擇標籤中,我不知道爲什麼?我的代碼是非常簡單的:爲什麼不選擇mysql數據值進入選項菜單?

<?php 
     include('config.inc'); 
     $result = mysqli_query($con,"SELECT * FROM DBForm"); 

     while($row = mysqli_fetch_array($result)) { 
      echo "<select>"; 
      echo "<option value=" . $row['id'] . ">" . $row['carpetTypes'] . "</option>"; 
      echo "</select>"; 


     } 

     echo "</table>"; 
     ?> 

enter image description here

任何幫助將不勝感激。

回答

1

我把while循環的選擇之外:

echo "<select>"; 
while($row = mysqli_fetch_array($result)) { 
    echo "<option value=" . $row['id'] . ">" . $row['carpetTypes'] . "</option>"; 
    } 
echo "</select>"; 

不這樣做,這將導致一個單選項選擇每次迭代

0

要生產的同時,之前移動到循環和關閉後的echo "</select>";}

您只希望輸出選擇標記一次,即每個項目的選項標記。

1

您需要將<select>放在循環之外。此外,更緊湊的解決方案可以是

<?php 
include 'connectDB.inc'; 
$options = ""; 
if($tablesQuery = mysqli_query($connect,"SHOW TABLES")) 
    { 

     while($tables = mysqli_fetch_array($tablesQuery)) 
     { 
      $options = "$options"."<option> 
      $tables[0] 
      </option>"; 
     } 
    } 


?> 

從MySQL獲取選項。並保持html簡單:

<select id = "table1" name = "table1"> 
     <?php 
     echo "Select table1 : <br> $options "; ?> 
     </select>