2016-07-30 20 views
1

[Use Case] ​​Alles Post und zählt von db Phalcon

Ich habe 2 Benutzer in meinem Blog.

Benutzer 1 hat 3 Beiträge und hat die folgende Menge von Ansichten:

  • post 1: 20 Ansichten
  • Pfosten 2: 40 Ansichten
  • Beitrag 3: 100 Ansichten

Benutzer 2 hat 2 Beiträge und hat die folgende Anzahl von Ansichten:

  • Beitrag 1: 15 Aufrufe
  • Beitrag 2: 40 Ansichten

[Frage]

Ich möchte den Gesamtbetrag der Ansichten zählen (aller Beiträge) für jeden Benutzer in phalcon. Ich kann es nicht herausfinden. Ich bin nicht in der Lage, zu binden oder diese Abfrage durchzuführen.

[Controller]

public function index() 
{ 
    $pcount = Blogs::findBybauthor($this->session->get('uname')); 
    $posted = count($pcount); 
    $x = []; 
    $v = Blogs::findBybauthor($this->session->get('uname')); 
    foreach($v as $a) 
    { 
    echo($a->views.'<br/>'); 
    }  
} 
+0

Statt 'Rückkehr find' können Sie' count' tun: 'Blogs :: countBybauthor ($ this-> Session-> get ('uname')); '. Dies wird die Anzahl der 'Autor'-Vorkommen in 'Blogs' zurückgeben. – Timothy

+0

Eigentlich möchte ich zählen, wie viele Leute in jedem Benutzer Post erreicht haben. Deshalb möchte ich zuerst zählen, wie viele Post in jedem Benutzer und dann, wie viele Menschen jeden Beitrag für die Beiträge dieses Benutzers erreicht haben und dann hinzufügen. –

+0

Sie möchten also die Gesamtzahl der Aufrufe/Benutzer oder nur die Gesamtanzahl der Aufrufe aller Beiträge? – Timothy

Antwort

1

Ich bin derzeit nicht in der Lage, dieses Beispiel zu überprüfen. But from looking at the docs, sollte dies Sie in die richtige Richtung zeigen.

Anstelle von find verwenden wir sum.

Dies wird ein Array mit der Gesamtzahl der Ansichten, nach Autor gruppiert.

$viewsPerAuthor = Blogs::sum(
    array(
     "column" => "views", 
     "group" => "bauthor" 
    ) 
); 

Dies wird die Gesamtmenge der Ansichten für einen bestimmten Autor

$total = Blogs::sum(
    array(
     "column"  => "views", 
     "conditions" => "bauthor = :author:", 
     "bind"  => array('author' => $this->session->get('uname')) 
    ) 
);