2

我有以下代码:

  <?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(在下拉列表中)。我想我在代码中犯了一个错误——任何人都可以看到它吗?

提前致谢。

4

2 回答 2

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>";
}
于 2013-04-17T17:35:22.517 回答
1

尝试这个。在这种情况下,foreach 循环是不必要的。

<?php
while ($res=mysqli_fetch_assoc($select)){
echo "<option>" . $res["field_2"] . "</option>";
}
?>
于 2013-04-17T17:35:14.653 回答