我有一个功能可以生成下拉<select>
<option>
s
<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(还)。
答案 0 :(得分:1)
通过使用MYSQLI_ASSOC常量,此函数的行为与mysqli_fetch_assoc()相同,而MYSQLI_NUM的行为与mysqli_fetch_row()函数相同。最后一个选项MYSQLI_BOTH将创建一个具有两者属性的单个数组。
基本上通过使用MYSQLI_BOTH
,您的输出结果将以关联格式和与数字索引一起返回,从而导致重复结果,这可能是您获得空值的原因。
您应该在此使用MYSQLI_ASSOC
:
while($row = $result->fetch_array(MYSQLI_ASSOC)){