foreach()SQL查询只获得独特的结果

时间:2013-02-22 22:26:42

标签: php sql foreach

我的表performanta_cpu中有一行modele,该行包含不同的数字cpu的frecv。例如:800, 1200, 1500,等,我想要预告所有的frecv。但如果4个设备具有相同的CPU速度,则显示第4次相同的frecv。

是否可以在html <select>800100012001400等处获得一次frecv?

这是我的代码:

$sql = "SELECT * FROM $tbl_name ORDER BY performanta_cpu DESC";
    foreach ($dbh->query($sql) as $linie)
        {

    print '<option value="'.$linie["performanta_cpu"].'">'.$linie["performanta_cpu"].'</option>'; }?>

这就是我得到的:

           <option value="800">800</option>
           <option value="800">800</option>
           <option value="2000">2000</option>
           <option value="2000">2000</option>
           <option value="1600">1600</option>
           <option value="1500">1500</option>
           <option value="1500">1500</option>
           <option value="1500">1500</option>
           <option value="1400">1400</option>
           <option value="1000">1000</option>
           <option value="1000">1000</option>
           <option value="1000">1000</option>
           <option value=""></option>            

正确就是这样:

           <option value="1600">1600</option>
           <option value="1500">1500</option>
           <option value="1400">1400</option>
           <option value="1300">1300</option>
           <option value="1200">1200</option>
           <option value="1100">1100</option>
           and so...

4 个答案:

答案 0 :(得分:4)

将查询更改为

SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY performanta_cpu DESC

答案 1 :(得分:3)

你可以SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY CAST(performanta_cpu AS UNSIGNED) DESC

答案 2 :(得分:1)

如果要添加DISTINCT,它必须有效。

  

SELECT DISTINCT (performanta_cpu)FROM $ tbl_name ORDER BY   performanta_cpu

答案 3 :(得分:0)

试试这个

$sql = "SELECT * FROM $tbl_name ORDER BY performanta_cpu DESC";
$cpu = array();
foreach ($dbh->query($sql) as $linie)
    $cpu[] = $linie["performanta_cpu"];

$cpu = array_unique($cpu);

foreach($cpu as $val)
    print '<option value="'.$val.'">'.$val.'</option>'; }?>