MySQL表的结果是否重复?

时间:2013-04-17 17:30:31

标签: php mysql

我有以下代码:

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

提前致谢。

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>";
}
?>