<select name="s" >
<?php
$sql="select * from news";
$result=mysql_db_query($dbname,$sql);
while($result!=null&&$row=mysql_fetch_array($result)){
?>
<option value="<?php echo $row[bz]; ?>"><?php echo $row[bz]; ?></option><?php } ?>
</select>如何使select里面的值不重复?
如果有两个以上的值就只显示一个

解决方案 »

  1.   

    select distinct * from news
      

  2.   

    正解,sql里面的distinct,多看manual
      

  3.   

    <select name="s" >
    <?php
    $sql="select bz from news group by bz";
    $result=mysql_db_query($dbname,$sql);
    while($result!=null&&$row=mysql_fetch_array($result)){
    ?>
    <option value=" <?php echo $row['bz']; ?>"> <?php echo $row['bz']; ?> </option> 
    <?php } ?>
    </select> 
      

  4.   

    开始没有注意这个问题,以为DISTINCT操作只需要找出所有不同的值就可以了。而GROUP BY操作还要为其他聚集函数进行准备工作,GROUP BY操作做的工作应该比DISTINCT所做的工作要多一些。但是我在MYSQL下亲自测试了一下,发现GROUP BY要比DISTINCT效率高啊!!楼上高手!赞……