在php页面中回显选择选项?

时间:2014-08-13 10:57:14

标签: php mysql

我试图使用mysql结果回显选择选项。

我的代码下面只得到一个结果,但我在mysql数据库中有5个结果!

PHP代码:

if( ! $stmt = $db_conx->prepare("SELECT id, product_name FROM $storeShop ORDER by id") ) {
  die( $db_conx->error );
}
$dropdownlist_list = "";
$stmt->bind_param('i', $id);
if ( ! $stmt->execute() ) {
  die( $stmt->error );
}
$stmt->bind_result($id, $product_name);
$stmt->store_result();

while($stmt->fetch()) {
    $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
$dropdownlist_list = '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
    }

    /* close statement */
    mysqli_stmt_close($stmt);

HTML CODE:

<select id="galleryfilter" class="form-control pull-left">
                                       <?php echo $dropdownlist_list; ?>

</select>

有人可以告诉我什么错了吗?

由于

4 个答案:

答案 0 :(得分:2)

您必须附加新选项,目前您正在分配数据库中的最后一个值

这将有效: $dropdownlist_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';

答案 1 :(得分:2)

每次加载新语句时,您当前的解决方案都会覆盖现有字符串。

试试这个:

$dropdownlist_list = "";
while($stmt->fetch()) {
    $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
    $dropdownlist_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
}

或者更好的解决方案:

while($stmt->fetch()) {
    $values[] = array('id'=>$id, 'product_name'=>$product_name);
}

HTML:

<select id="galleryfilter" class="form-control pull-left">
<?php 
    foreach ($values as $value) echo '<option data-filter="'.$value['product_name'].'">'.$value['product_name'].'</option>';
?>
</select>

答案 2 :(得分:1)

$dropdownlist_list  '';    
while($stmt->fetch()) {
    $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
    $dropdownlist_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
}

每次都会覆盖你的选项字符串。你需要append其他选项

答案 3 :(得分:1)

您必须使用$dropdown_list .=代替=这将附加新选项。

这导致:

$dropdown_list = "";
while($stmt->fetch()) {
    $valuesss[] = array('id'=>$id, 'product_name'=>$product_name);
    $dropdown_list .= '<option data-filter="'.$product_name.'">'.$product_name.'</option>';
}