Domuta Marcel
Domuta Marcel

Reputation: 509

foreach() SQL query get just unique results

I have a row performanta_cpu in my table modele and that row contain diferent numeric cpu's frecv. ex: 800, 1200, 1500, etc and i want to foreach all frecv. but if 4 devices have same cpu speed, shows me 4th times same frecv.

Is there posible to get just once a frecv in html <select> ex: 800, 1000, 1200, 1400, etc ?

Here is my code:

$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>'; }?>

and this is what i get:

           <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>            

The correct will be like this:

           <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...

Upvotes: 2

Views: 1210

Answers (4)

Rob
Rob

Reputation: 12872

You could SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY CAST(performanta_cpu AS UNSIGNED) DESC

Upvotes: 3

serhat
serhat

Reputation: 5

If you will add DISTINCT, its must work.

SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY performanta_cpu

Upvotes: 1

Winston
Winston

Reputation: 1805

Try this

$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>'; }?>

Upvotes: 0

Gerardo G&#243;mez
Gerardo G&#243;mez

Reputation: 127

Change the query to

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

Upvotes: 4

Related Questions