2014-07-21 29 views
0

我有一個生成的下拉<select><option>小號while循環打印空白<option></option>

<select> 
    <option></option> 
    <option name="the-correct-display">The Correct Display</option> 
    <option></option> 
    <option name="the-correct-display">The Correct Display</option> 
    <option></option> 
</select> 

任何爲什麼我得到的空白思想內容的功能?這裏的功能:

function catalogGetColors($mysqli) 
{ 
    $query = 'SELECT sectionName FROM sections'; 
    if($result = $mysqli->query($query)){ 
     while($row = $result->fetch_array(MYSQLI_BOTH)){ 
      $optName = strstr(strtolower(str_replace(' ', '-', $row['pName'])), '-', true); 
      printf('<option name="%s">%s<option>', $optName, $row['pName']); 
     } 
    } else { 
     printf('Something went wrong.'); 
    } 
} 

這是在內部使用的,所以我不擔心準備的語句或PDO(還)的原型版本。

回答

1

From the manual:

通過使用MYSQLI_ASSOC恆定這個函數將相同的行爲的mysqli_fetch_assoc(),而將MYSQLI_NUM相同表現的mysqli_fetch_row()函數。最後一個選項MYSQLI_BOTH將創建一個具有兩者屬性的單個數組。

基本上使用MYSQLI_BOTH你的輸出結果將在關聯格式與數字索引被退回,導致重複結果這可能是爲什麼你有空值。

你應該在這裏使用MYSQLI_ASSOC代替:

while($row = $result->fetch_array(MYSQLI_ASSOC)){