Zobrazit výpis databazy na stránke
- Andurit
- Člen | 131
Caute,
Mám problém so zobrazením výsledku QUERY v latte, predpokladam že robím
nejakú hlúpu chybu alebo len možno rozmýšlam nesprávnym spôsobom. Skúsim
všetko spísať v bodoch aby som bol čo najpresnejší a bolo to
najprehladnejsie. Dúfam, že niekto z vás mi bude vedieť poradiť
Ako by to malo fungovať:
Mám nejaký relatívne obsiahly formulár, po jeho odoslaní by sa na základe
hodnôt z formulára malo zavolať QUERY do DB, ktoré vráti výlsedky. Inak
povedané klasické hľadanie ako vidíte všade :)
Čo mám napísané:
Kopírovať zadanie formuláru ci latte je asi zbytočné takže skopírujem len
posledne 2 riadky a následne ako to vyzerá po jeho odoslaní.
$form->onSuccess[] = array($this, 'searchFormSucceeded');
return $form
public function searchFormSucceeded(Nette\Application\UI\Form $form, $values)
{
$this->flashMessage('Ďakujeme, výsledky pre vaše hľadanie sú.');
$this->template->candidates = $this->search->findCandidates($values);
}
Následne to vyzerá v modely takto (kedze mi to nešlo skúsil som len jednoduché QUERY):
function findCandidates($searchParams)
{
return $this->db->query("
SELECT *
FROM candidates as c
WHERE firstname = 'Dante'
");
}
Čo som zamýšlal:
Moja myšlienka bola celkom jednoduchá a pravdepodobne aj zlá, chcel som
vyhľadať výsledky a priradiť ich rovno do premennej candidates aby som to
mohol vypísať v latte.
Keď však dumpnem candidates v latte mám to prázne. Skúšal som rovnako DUMP priamo v presentri, tvári sa to, že query prejde no nepriradi to do premmennej.
DUMP vyzera takto:
{dump $candidates}
Nette\Database\ResultSet #45e2
connection private => Nette\Database\Connection #ff4a
supplementalDriver private => Nette\Database\Drivers\MySqlDriver #bb86
connection private => Nette\Database\Connection #ff4a
pdoStatement private => PDOStatement #30bd
queryString => "
SELECT *
FROM candidates as c
WHERE firstname = 'Dante'
" (71)
result private => NULL
resultKey private => -1
results private => NULL
time private => 0.002000093460083
queryString private => "
SELECT *
FROM candidates as c
WHERE firstname = 'Dante'
" (71)
params private => array ()
types private => NULL
Nakoľko ma napadlo, že chyba môže byť v tom, že hold v DB tieto data nie sú, skúsil som toto query skopírovať rovno do PHPMYADMINA kde mi to vrátilo 3 riadky výsledkov.
p.s.Ladenka mi píše že prebhlo query a našlo 3 rows, čo je v poriadku. Otázka teda znie, zapisal som to zle do presentru? Ako by som mal výsledky tohto query dostat do šablony?
Viete mi niekto poradiť čo robím zle?
Diky
Editoval Andurit (19. 11. 2015 12:08)