проблема с сортировкой

Главные вкладки

Аватар пользователя e.gov e.gov 23 августа 2006 в 8:18

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

Комментарии

Аватар пользователя e.gov e.gov 24 августа 2006 в 7:15

if (user_access(‘access content’)) {

}
а если доступа нет, то ничего не выполняется. Собственно доступ всегда есть для всех пользователей, и в этой проверке особого смысла нет.

Аватар пользователя e.gov e.gov 24 августа 2006 в 7:32

Убрал проверку. Остался такой код:

$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;

проблема осталась. Понимаю что такого не должно быть, но факт на лицо: Если анонимус - сортировка работает, если зарегистрированный пользователь - нет.

Аватар пользователя Basielienis Basielienis 24 августа 2006 в 15:39

Можно по частям попробовать. Помнится, были странности с длинными выражениями, а если разбить, то проходило:
$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) и т.п.

Аватар пользователя e.gov e.gov 25 августа 2006 в 6:55

По частям тоже не работает. Это проблема существует и для главной страницы. Статьи на главной странице сортируются в обратном порядке для зарегистрированных пользователей.
Это может быть связано не PHP реализацией а с самой базой данных?

Аватар пользователя mephisto mephisto 25 августа 2006 в 7:23

Совет конечно не по теме, но очень часто помогает,
1) Если что-то не работает, несмотря на то что должно работать, следует переписать все подозрительные места.
2) Дампить всё что можно (в Вашем случае mysql_error() и строку запроса обязательно, мож там чего пропадает)

Помогает с любыми глюками и любыми языками, проверял на собственном опыте неоднократно.

Аватар пользователя e.gov e.gov 25 августа 2006 в 7:48

Всем спасибо.
проблема разрешилась. отключил модуль taxonomy_access и все заработало. Странно только что вот уже больше 6 месяцев с этим модулем все работало нормально.