codeigniter group_by Rückkehr wird nur die erste Zeile
habe ich dieses problem in codeigniter:
Ich versuche, ein Navigations-Baum-system aus der Datenbank.
Modell:
function getServices()
{
$this->db->select('service_url, service_title, category_title');
$this->db->join('services_category', 'services_category.id=services.category_id');
$this->db->group_by('category_title');
$this->db->order_by('service_title', 'ASC');
$query = $this->db->get('services');
if($query->result() == TRUE)
{
foreach($query->result_array() as $row)
{
$result[] = $row;
}
return $result;
}
}
anzeigen:
<?php if(isset($services) && $services) : foreach($services as $s) : ?>
<ul>
<li><a href="#"><?php echo $s['category_title'] ?></a>
<ul>
<li><?php echo anchor('services/' . $s['service_url'], $s['service_title']); ?></li>
</ul>
</li>
</ul>
<?php endforeach; ?>
<?php endif; ?>
nun so weit so gut, das Ergebnis ist wieder jede Kategorie, das Weg soll, aber der service ist wieder nur ein Dienst pro Kategorie, und in einigen Kategorien gibt es 15 Dienste.
Jeder Art geben Sie mir eine hand, oder eine Erklärung was schief läuft ?
Ich danke Ihnen so sehr.
"ich bin kein Experte in php, codeigniter, ich habe gerade angefangen, nicht vor langer Zeit, also bitte nicht Schießen die Anfänger."
Hinweis: ich habe versucht, ohne die group_by-und order_by und kehrt alle Leistungen, aber die Kategorien sind zu wiederholen,
ex:
category-a
service1
category-a
service2
category-b
service10
category-b
service11
category-c
service30
category-c
service31
....
InformationsquelleAutor lesandru | 2012-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine gute Lektüre für die Aggregat-Funktionen bei der Verwendung von Group By (MySQL).
Eine einfache Erklärung wäre wie diese
Nun mit SUM-Aggregatfunktion wie diese.
Das Ergebnis wird sein:
In Ihrem Szenario
GROUP BY
wird nicht funktionieren, wie soll es nur eine Kategorie, da Sie gruppiert Ihre Abfrage, indem Sie jede Kategorie.Die ideale Lösung für dieses haben 2 getrennte Funktionen,
GetCategories
undGetServices
.Dann in Ihre Datei anzeigen, werden Sie nur brauchen, um eine for-Schleife die Kategorien führen Sie dann eine Abfrage für jede Kategorie. Hier ist ein überblick von dem, was es Aussehen wird,
eigentlich möchte ich dich etwas Fragen, wenn nicht zu viel ist, ist es gute Praxis, um das Modell in der Ansicht? nicht zu brechen die MVC ?
Hallo Alex, es nicht zu brechen MVC, da Sie immer noch gepflegt werden Ihre Daten definition im Modell, Sie einfach ausgesetzt, sich das Modell der Methoden in Ihrem Blick, die im Idealfall sein sollte auf der controller-Ebene. Ich verwende in der Regel Helfer, so dass alle Aufrufe an das Modell von beiden Controllern/views in die Helfer.
das klingt gut mit den Helfern, ich danke Ihnen so viel Ass.
InformationsquelleAutor ace