PHP Nette - Paginator - SQL JOIN - Call to a member function count() on array

PHP Nette - Paginator - SQL JOIN - Call to a member function count() on array

Dobrý den,

mám v Nette projektu VisualPaginator a funguje v pořádku. Když chci ale použít SQL s JOIN přes více tabulek, tak toto SQL nedokáži přes paginator propasírovat:


$rows = $this->database->fetchAll('SELECT dochazka.*, clenove.*, treninky.*, druzstva.* FROM dochazka
JOIN clenove ON dochazka.doch_cl_id = clenove.cl_id
JOIN treninky ON dochazka.doch_tr_id = treninky.tr_id
JOIN druzstva ON dochazka.doch_dr_id = druzstva.dr_id
ORDER BY dochazka.doch_id DESC');

$visualPaginator = $this['visualPaginator'];
$paginator = $visualPaginator->getPaginator();
$paginator->itemsPerPage = 30;
$paginator->itemCount = $rows->count('*');
$rows->limit($paginator->itemsPerPage, $paginator->offset);
$this->template->rows = $rows;


Háže mně to tuhle chybu:
Error
Call to a member function count() on array

$paginator->itemCount = $rows->count('*');

Poradíte prosím někdo jak ten paginator zprovoznit na klasický SQL dotaz přes více tabulek (přes JOIN)? Díky

ODPOVĚĎ


Dobrý den,

v Nette projektu s VisualPaginator bude třeba upravit SQL dotazy takto a bude to fungovat, mám to ověřené:


$count = $this->database->query('SELECT dochazka.*, clenove.*, treninky.*, druzstva.* FROM dochazka
JOIN clenove ON dochazka.doch_cl_id = clenove.cl_id
JOIN treninky ON dochazka.doch_tr_id = treninky.tr_id
JOIN druzstva ON dochazka.doch_dr_id = druzstva.dr_id
ORDER BY dochazka.doch_id DESC');

$visualPaginator = $this['visualPaginator'];
$paginator = $visualPaginator->getPaginator();
$paginator->itemsPerPage = 30;
$paginator->itemCount = count($count->fetchAll());

$this->template->rows = $this->database->query('SELECT dochazka.*, clenove.*, treninky.*, druzstva.* FROM dochazka
JOIN clenove ON dochazka.doch_cl_id = clenove.cl_id
JOIN treninky ON dochazka.doch_tr_id = treninky.tr_id
JOIN druzstva ON dochazka.doch_dr_id = druzstva.dr_id
ORDER BY dochazka.doch_id DESC LIMIT ? OFFSET ?', $paginator->itemsPerPage, $paginator->offset);


Show english version

Související obsah

programovani

nette

php

Komentáře

Vaše reakce na PHP Nette - Paginator - SQL JOIN - Call to a member function count() on array

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.