Błędy w zapytaniach SQL ezPublish 4.0.3 - cz.2
Po tym jak i naprawiłem tagi (jak się okazało nie do końca) i zaczęło działać archiwum blogów naprawienie wyszukiwania wpisów na blogu po tagach było dość proste. Błąd pojawiający się w var/log/error.log
AND ezkeyword_attribute_link.keyword_id = ezkeyword.id \ ORDER BY a0.sort_key_int DESC LIMIT 10 BŁĄD: dla SELECT DISTINCT, ORDER BY wyrażenia muszą występować \ na liście wyboru
(a w zasadzie końcówka zapytania) oprowadziła mnie do pliku kernel/content/ezcontentfunctioncollection.php w którym zmodyfikowałem zapytanie SQL rozpoczynające się w linii 989 i kończące się jak w błędzie powyżej. Najpierw z listy sortowania wyciągam same nazwy pól i dodaję je do zapytania. Cała zmiana wygląda tak:
--- ezcontentfunctioncollection.php-org 2009-02-16 16:16:49.000000000 +0100 +++ ezcontentfunctioncollection.php-new 2011-02-14 00:01:11.000000000 +0100 @@ -993,8 +993,12 @@ { $sqlMatching = "ezkeyword.keyword = '$alphabet'"; } + if (substr( $sqlTarget, 0, 9) == 'DISTINCT ') { + $sortingFielsdList=", ".str_replace(array("ASC", "DESC"), "", \ $sortingInfo['sortingFields']); + } $query = "SELECT $sqlTarget + {$sortingFielsdList} FROM ezkeyword, ezkeyword_attribute_link,ezcontentobject_tree,ezcontentobject, \ ezcontentclass $sortingInfo[attributeFromSQL] $sqlPermissionChecking[from]
Teraz żadne błędy się już nie pojawiają, ale i tak chyba czas pomyśleć i aktualizacji.
Kommentare
Bitte melden Sie sich Logan oder registrieren Sie sich um kommentieren zu können.