【问题标题】:while loop printing blank <option></option>while 循环打印空白 <option></option>
【发布时间】:2014-07-21 23:09:37
【问题描述】:

我有一个生成下拉内容的函数&lt;select&gt;&lt;option&gt;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(目前)。

【问题讨论】:

    标签: php html forms mysqli


    【解决方案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)){
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多