Chyba mysql pokud využiju mysql dotaz ve dvou renderech po sobě

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pilda
Člen | 52
+
0
-

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)

hrach
Člen | 1838
+
0
-

achjo, mě už z toho střelí. :D Kolik tun testu budu muset napsat, aby to fungovalo? :D

zkopiruj sem presne volani, ktere to zpusobuje, na tom radku totho je dost, neni to ani cele videt.

Editoval hrach (7. 2. 2012 10:55)

Pilda
Člen | 52
+
0
-

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.

Pilda
Člen | 52
+
0
-

Tak jsem zkoušel zpátky verzi 2.0 RC1 a tam to funguje normálně. Nemohl by se na to někdo podívat? Možná jsem to měl spíš napsat do sekce bugy.

Editoval Pilda (9. 2. 2012 14:04)

hrach
Člen | 1838
+
0
-

Potreboval bych tvuj kod izolovat od ostatniho. Zasli prosim, ktere sql dotazy to polozilo v RC1 a ktere ve stable (samozrejme jen ty relevantni). Diky

Pilda
Člen | 52
+
0
-

Bude stačit když si porovnáš tu laděnku laděnku s funkční stránkou s debugbarem zde?

hrach
Člen | 1838
+
0
-

Chyba nalezena, pracuji na oprave. Diky!

hrach
Člen | 1838
+
0
-

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
+
0
-

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
+
0
-

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 :(((

hrach
Člen | 1838
+
0
-

Pullrequest s opravou odeslan. Vyzkousej, sem zvedavej, jestli to pomuze, ale melo by :)

Pilda
Člen | 52
+
0
-

Díky moc. Dám pak vědět.

hrach
Člen | 1838
+
0
-

uz je to v nightly.