我试图使用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>
有人可以告诉我什么错了吗?
由于
答案 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>';
}