Citat:
Ursprungligen postat av
Cryx
Det där gör ingen skillnad. Det måste vara min forloop som printar ut resultatet som är fel. Den ser ut såhär:
[PHP]if($pageId == "nyheter") {
echo "<ul>";
foreach($res as $article) {
$artCat= $article['category'];
$artLink= $article['title'];
echo "<li><h3> " . $artCat. "</h3></li>";
echo $artLink;
}
}[/PHP]
Borde du inte kunna lösa det på det här sättet istället?
[PHP]<?php
if($pageId == "nyheter") {
echo "<ul>";
$currentCat = null;
foreach($res as $article) {
$artCat = $article['category'];
$artLink= $article['title'];
if($currentCat != $artCat) {
echo "<li><h3> " . $artCat. "</h3></li>";
$currentCat = $artCat;
}
echo $artLink;
}
}
?>[/PHP]
Alternativt så här
[PHP]$articles = array();
foreach($res as $article) {
$articles[$article['category']][] = $article;
}
echo '<ul>';
foreach($articles as $category => $items) {
echo '<li><h3>' . $category . '</h3></li>';
foreach($items as $item) {
echo $item['title'];
}
}
echo '</ul>';[/PHP]
Nu är det kanske inte de finaste lösningarna och borde gå att göra lite snyggare, men det var lösningarna som dök upp i huvudet just nu. Det här gäller ifall du väljer att sortera efter kategori (och id eller något annat om du vill det också) istället för att köra group by.