我有以下代码:
<?php
$select = mysqli_query ($con,"SELECT field_2 FROM info4");
if (! $select) {
die('Query unfunctional ' . mysqli_error($con));
}
?>
<table>
<td><select name="City">
<?php
while ($res=mysqli_fetch_array($select)){
foreach($res as $value){
echo "<option>" . $value . "</option>";
}}
?>
</select></td></table>
其中$con
是连接。
但是这会输出所有值重复的下拉列表。例如,如果我的表中有1和2,则输出:1/1/2/2(在下拉列表中)。我假设我在我的代码中犯了一个错误 - 任何人都可以通过任何机会看到它吗?
提前致谢。
答案 0 :(得分:3)
mysqli_fetch_array
默认为结果返回类型MYSQLI_BOTH
,它返回关联和非关联值。为什么会这样,我不知道,但它返回的数组是:
$res = array(0 => '1', 'field_2' => '1');
您可以使用mysqli_fetch_assoc
或指定MYSQLI_ASSOC
作为返回值来解决此问题。我首选的解决方案是:
while ($res = mysqli_fetch_assoc($select)) {
echo "<option>$res[field_2]</option>";
}
答案 1 :(得分:1)
试试这个。在这种情况下,foreach循环是不必要的。
<?php
while ($res=mysqli_fetch_assoc($select)){
echo "<option>" . $res["field_2"] . "</option>";
}
?>