Chyba mysql pokud využiju mysql dotaz ve dvou renderech po sobě
- Pilda
- Člen | 52
Udělal jsem ve fóru funkci sledování témat. Pokud nějaké téma začnu sledovat (tj kliknu na odkaz na stránce v topiku) a posléze si chci si nechat zobrazit seznam všech mnou sledovaných vláken, tak mám problém.
1.) pokud zadám do prohlížeče url stránky, která mi generuje ten seznam, tak se zobrazí tak jak má
ale
2.) pokud z topiku přejdu třeba na hlavní stránku fóra, (která pracuje také s tou tabulkou, kam zapisuji ta sledovaná témata) a z ní se dostanu tak jak mám na tu stránku co mi má vypsat ty topiky, tak to vyhodí chybu Cannot read an undeclared column „users_id“.
Pokud pak smažu cache, tak to zase jde normálně dokud zase nepřidám nic nového do té tabulky sledovaných témat. Takže chyba vznikne pouze po tom zápisu.
Je to bug? Lze to nějak ošetřit? Nejsem si jistý úplně na 100 %, ale v betě 2 mi to nedělalo, dělá to až od final verze.
Přikládám screenshot.
Editoval Pilda (7. 2. 2012 3:33)
- Pilda
- Člen | 52
Díky za podporu. Udělá to tam pak asi v té podmínce.
{? $visit = $thread->forum_threads->related('forum_visits')->where("users_id", $user->id)->limit(1)->fetch()}
{if $visit == true && $visit->last_visit >= $thread->forum_threads->last_modify && $visit->users_id == $user->id}
<img src="/images/ico_s/page_white.png" alt="Přečteno">{var $read = true}
{else}{var $read = false}<img src="/images/ico_s/page.png" alt="Nepřečteno">
{/if}
Můžeš se klidně kouknout i na laděnku.
- hrach
- Člen | 1838
Tak, už vím přesně kde je chyba, ale zatím jsem nenašel, kde jsem způsobil, že to dříve fungovalo. Skoro bych řekl, že to fungovat nemohlo a je to jen shoda náhod. pošli mi ID commitu, na které verzi ti to funguje, nebo mi pošli na mail Nette\Database adresář ze zdrojáky, abych to porovnal. Díky
- Pilda
- Člen | 52
Zkoušel jsem to teď a v RC1 to ještě jde, ale v RC2 už ne. Ten samý script používám všude na fóru a z 99 % funguje normálně, ale tak jednou ze sta pokusí mi to vyhodí pro změnu chybu undefined offset. Možná to bude kvůli té samé chybě. To se ale už docela blbě simuluje, protože to dělá zcela náhodně.
- hrach
- Člen | 1838
Aktualni stav zkoumani: myslim si, ze je to cele jedna velka nahoda. Bug jsem nasel, ale rozhodne je i v RC1, je i v Notorm. To, ze ti to funguje s RC1 prikladam tomu, ze RC1 ma jiny hash pro cache, takze to nacte jinou cache, ktera nezpusobi ten error. Oprava vubec neni jednoducha :(((