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

Good day,

I have a VisualPaginator project in Nette and it works fine. However, if I want to use SQL with JOIN across multiple tables, I cannot pass this SQL through a paginator:


$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;


Error
Call to a member function count() on array

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

Can you advise someone how to put the paginator into a classic SQL query over multiple tables (via JOIN)? Thanks

REPLY


Hello,

in Nette project with VisualPaginator you will need to modify SQL queries like this and it will work, I have verified it:


$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);


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.