This question already has an answer here:
I have a website with a database over different phones. And to gather data from the database, I have this code
//echo "SELECT * FROM `product_info` DESC";die;
$filter = $this->queries->custom("SELECT * FROM `product_info`GROUP BY 'model' ORDER BY `model` ASC");
When I use this code now, it only shows one model, instead of all the different models.
Since i've added some of the models more than once i Would like to sort those out.
Like, i have fx added the iPhone 7 5 different times in my database and of course i wouldn't want the site to show it 5 times, therefore i would like to sort after models and only show each model one time. I've read about the array_unique, but didn't quite understand it.
</div>
I guess I found the problem, it's a little typo. You used single quotes ( ' ) instead of backticks ( ` ) for your GROUP BY
column. Single quotes are for string values. This means that your current query groups by the string "model" (and not by the column model
), which is of course the same string for every record.
So either use backticks:
SELECT * FROM `product_info` GROUP BY `model` ORDER BY `model` ASC
or omit the backticks at all because they are only necessary when your column is a reserved keyword:
SELECT * FROM product_info GROUP BY model ORDER BY model ASC
Just add the DISTINCT keyword
SELECT DISTINCT * FROM `product_info`GROUP BY 'model' ORDER BY `model` ASC