Nette nevráti správny SQL výsledok (napriek tomu, že command je spravny)
- Andurit
- Člen | 131
Ahojte,
Mám jednoduchý SQL command ktorý mi má vratit companyID zo stlpca company a
počet rovnakých ID.
Comand vyzerá nejako takto:
SELECT company, COUNT(company) FROM users GROUP BY company
Pokiaľ ho zadám do PHPMYADMINA tak mi to vypíše krásny výsledok, pokiaľ ho zadám do nette vracia mi to nezmysel, ktorý vyzerá nejako takto:
array (1)
"'companiesUserCount'" => "companiesUserCount" (18)
Model:
function getAllCompanyUsersCount()
{
return $this->db->fetchPairs('SELECT company, COUNT(company) FROM users GROUP BY company');
}
Presenter:
public function renderDefault()
{
$this->template->companies = $this->facade->getAllCompanyStatistics(); //Iná metóda, prakticky nepodstatná pre tento účel
$this->template->companiesUserCount = $this->facade->getAllCompanyUsersCount();
}
a v template mám zatial len: {dump companiesUserCount} (výsledok som vypísal vyššie.
Vedel by mi niekto poradiť čo robím zle? (Cache som zmazal už aspon 10x)
- Namespace
- Člen | 80
Ahoj,
chybu bych hledal zde:
return $this->db->fetchPairs('SELECT company, COUNT(company) FROM users GROUP BY company');
Zkus
$this->db->query('SELECT company, COUNT(company) FROM users GROUP BY company')->fetchAll();
Doporučuji načíst https://doc.nette.org/…ase/explorer#…
- David Matějka
- Moderator | 6445
Jakou mas verzi nette? mne to jede ok (zkouseno na 2.3 i 2.2).
Zkus aliasovat ten count, COUNT(company) AS count
- Mysteria
- Člen | 797
Pokud používáš NDBT, tak třeba takhle, pokud používáš jenom čistě SQL, tak to ti neřeknu, protože to nepoužívám.
function getAllCompanyUsersCount() {
return $this->database->table('users')->select('company, COUNT(company) count')->group('company')->fetchPairs('company', 'count');
}
Editoval Mysteria (18. 3. 2015 18:29)
- Andurit
- Člen | 131
Čauko vďaka za koment, bohužiaľ bez zmeny, nette verzia je ta aktualna najnovšia stable
Čo som vyskúšal:
1. Do pôvodnej metody som dal iný SQL statment no napriek tomu sa mi
vráti:
"'companiesUserCount'" => "companiesUserCount" (18)
2. V pôvodnej metode som urobil úmyselnú chybu v SQL statmente, okamžite to vypľulo chybu. Takže to evidetne netaha odniekiaľ z cachu.
3. Skúsil som získať údaje ktoré potrebujem do iného statmentu a teda
starý statment ktorý mi vracal len company a SUM(query) som pridal COUNT,
return $this->db->fetchPairs('SELECT company, SUM(query), COUNT(company) FROM users GROUP BY company');
Bohužiaľ mi to vráti len pole s company a SUM(query) ten count vôbec.
Editoval Andurit (19. 3. 2015 11:23)
- David Matějka
- Moderator | 6445
uz to vidim, ty jen spatne dumpujes, chybi ti tam $
,
takze {dump $companiesUserCount}