Wie zählen von Objekten in der Gruppe mit Codeigniter?
Ich bin mit active record, um wieder eine gruppierte Liste von Datumsangaben mit den folgenden code:
function get_archive_links(){
$this->db->order_by('date','desc');
$this->db->group_by('MONTH(date), YEAR(date)');
$query = $this->db->get('blog');
foreach ($query->result() as $row) {
$data[] = array(
'id' => $row->id,
'date' => $row->date
);
}
return $data;
}
Welche, wenn Sie geloopt und hallten auf meine Seite zurück:
- Februar 2012
- Januar 2012
- Dezember 2012
Wie kann ich zählen, jedem Element in der Gruppe und zeigen Sie es in meine Liste? Beispiel:
- Februar 2012 (2)
- Januar 2012 (6)
- Dezember 2012 (7)
Werde ich zählen, wie viele blog-Beiträge dort, wo für jeden Monat.
InformationsquelleAutor hairynuggets | 2012-02-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entweder entfernen Sie die
GROUP BY
dann zählen in PHP, oder fügen Sie eine->select('COUNT(id) AS num_posts')
zu Ihrem AR-Abfrage. Ich würde wahrscheinlich fügen Sie die->select()
, denn es ist weniger Arbeit 🙂Hinzufügen
$this->db->select('COUNT(id) AS num_posts');
in der ersten Zeile der Funktion, die sich dann in Ihremforeach
Schleife hinzufügen, in'num_posts' => $row->num_posts
Ich bekomme nur eine Menge Undefined property: stdClass::$id.
alle anderen Gedanken?
Ersetzen
id
mit dem Namen Ihres primary key-Spalte (die eindeutige ID, die mit jedem blog-post)InformationsquelleAutor Joe
Können Sie es mit der sql-Funktion count. wenn Sie mit group by, count-Funktion die Rückgabe Anzahl Zeilen für Zeilen-Gruppe.
wie diese,
}
InformationsquelleAutor levye
Dies funktioniert perfekt, aber nicht zeigt null zählt, wenn nicht vorhanden post für die Kategorie
hier ist meine Funktion,
InformationsquelleAutor irfan
Ich habe die Antwort für die null-Zählung Problem.
InformationsquelleAutor shimara