Reputation: 509
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
Reputation: 12872
You could SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY CAST(performanta_cpu AS UNSIGNED) DESC
Upvotes: 3
Reputation: 5
If you will add DISTINCT, its must work.
SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY performanta_cpu
Upvotes: 1
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
Reputation: 127
Change the query to
SELECT DISTINCT(performanta_cpu) FROM $tbl_name ORDER BY performanta_cpu DESC
Upvotes: 4