Hi All! Столкнулся с такой проблемой:
Если пользователь логинится на сайт то при отображении статей и новостей возникает проблема с сортировкой, т.е. она идет в обратном порядке. Если пользователь выходит и работает как анонимус то все ОК.
вот пример кода для блока отображения последних записейй в дневнике где возникает такая же проблема:
if (user_access('access content')) {
$blog_content = node_title_list(db_query_range(db_rewrite_sql("SELECT n.nid, n.title, n.created FROM {node} n WHERE n.type = 'blog' AND n.status = 1 ORDER BY n.nid DESC"), 0, 3));
echo $img_list . t('Recent blog posts') . ':
' . $blog_content;
}
Причем как я только не менял строчку "ORDER BY n.nid DESC" всеравно не работает.
Может ктонибудь сталкивался с такой же проблемой? В чем может быть дело? куда копать?
drupal 4.6|www.e-talgar.com
Комментарии
А на что менял, на "ORDER BY n.nid ASC"?
делал по разному: “ORDER BY n.nid ASC” “ORDER BY n.created ASC” “ORDER BY n.created DESC” “ORDER BY n.nid DESC”
не помогает
if (user_access(‘access content’)) {
...
}
а если доступа нет, какой код выполняется?
if (user_access(‘access content’)) {
…
}
а если доступа нет, то ничего не выполняется. Собственно доступ всегда есть для всех пользователей, и в этой проверке особого смысла нет.
Убрал проверку. Остался такой код:
$blog_content = node_title_list(db_query_range(db_rewrite_sql(“SELECT n.nid, n.title, n.created FROM {node} n WHERE n.type = ‘blog’ AND n.status = 1 ORDER BY n.nid DESC”), 0, 3));
echo t(‘Recent blog posts’) . ‘:
’ . $blog_content;
проблема осталась. Понимаю что такого не должно быть, но факт на лицо: Если анонимус - сортировка работает, если зарегистрированный пользователь - нет.
Народ! Ни у кого ни каких мыслей по этому поводу нет? Куда копать?
Можно по частям попробовать. Помнится, были странности с длинными выражениями, а если разбить, то проходило:
$sql = “SELECT n.nid, n.title, n.created FROM {node} n WHERE n.type = ‘blog’ AND n.status = 1 ORDER BY n.nid DESC”
А потом уже только db_query($sql) и т.п.
По частям тоже не работает. Это проблема существует и для главной страницы. Статьи на главной странице сортируются в обратном порядке для зарегистрированных пользователей.
Это может быть связано не PHP реализацией а с самой базой данных?
Совет конечно не по теме, но очень часто помогает,
1) Если что-то не работает, несмотря на то что должно работать, следует переписать все подозрительные места.
2) Дампить всё что можно (в Вашем случае mysql_error() и строку запроса обязательно, мож там чего пропадает)
Помогает с любыми глюками и любыми языками, проверял на собственном опыте неоднократно.
Всем спасибо.
проблема разрешилась. отключил модуль taxonomy_access и все заработало. Странно только что вот уже больше 6 месяцев с этим модулем все работало нормально.