Регистрация
Вход через соцсети
Восстановление пароля

По функции listQuery

Новый топик
Страницы: 1  |  2  |  3
30.03.2011, 19:14
Ответить | Цитировать
Гость
Гость

Вопросы есть такие
1. какая переменная Message_ID объектов доступна в системных настройках?
2. по предыдущему сообщению по поводу $result_vars, если в системных настройках запросы к нескольким таблицам?
Спасибо.
30.03.2011, 23:13
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

в компоненте в поле "Префикс списка объектов:" напишите $message_select и посмотрите что у вас за запрос в итоге получается... мож там совсем не то что вы хотите?

Temet nosce...
31.03.2011, 04:15
Ответить | Цитировать
Asiat
Аниматика
Asiat

Зарегистрирован:
2005-12-12
Сообщений: 567

Конечно, вы же второй раз переопределили $result_vars (да и все остальные переменные). Просто назначайте их все один раз: $result_vars = "\$cnt_mess,\$cnt_rtg";

В системных настройках идентификаторов конкретных объектов по-моему не может быть.

Разработка сайтов на Netcat с 2006... хм-м ... или 2005 хммм года. В общем, обращайтесь.
31.03.2011, 09:34
Ответить | Цитировать
Гость
Гость

Код:
Конечно, вы же второй раз переопределили $result_vars (да и все остальные переменные). Просто назначайте их все один раз: $result_vars = "\$cnt_mess,\$cnt_rtg";

Понимаю, что переопределил, поэтому и спрашиваю какая альтернатива или т.п. есть по $result_vars.
В системных настройках при запросах к двум другим таблицам (помимо основной - компонента), используя $query_join, $query_select и т.д., и если новые переменные из них поместить в $result_vars = "\$cnt_mess,\$cnt_rtg"; ($cnt_mess из одной таблицы, $cnt_rtg - из другой), то в списке объектов доступна или первая или вторая переменная, обе сразу недоступны. Но почему?

Код:
В системных настройках идентификаторов конкретных объектов по-моему не может быть. 

Думаю что есть.
Если смотреть по аналогии с компонентом пользователей (сист.таблицы), то в его сист.настройках доступна переменная $user.
Поэтому и думается, что в сист. настройках компонента новостей должна быть переменная объектов, т.е. идентификатор записей в таблице этого компонента, например, $message_id или $f_RowID, но такие имена не доступны в сист. настройках. Тогда какая переменная? Она обязательно должна быть.
31.03.2011, 10:11
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Цитата:

Если смотреть по аналогии с компонентом пользователей (сист.таблицы), то в его сист.настройках доступна переменная $user.
Поэтому и думается, что в сист. настройках компонента новостей должна быть переменная объектов, т.е. идентификатор записей в таблице этого компонента, например, $message_id или $f_RowID, но такие имена не доступны в сист. настройках. Тогда какая переменная? Она обязательно должна быть.


Если идет полное отображение объекта (/news/news_1.html), то в системных настройках доступна переменная $message - номер объекта. При выводе списка объектов ( /news/ ) в системных настройках нет переменной, которая как-нибудь образом указывала на номера объектов: ведь их еще нет - запрос на выборку объектов идет после выполнения системных настроек.

Ксю доставляет...
31.03.2011, 10:13
Ответить | Цитировать
Denis
Denis

Зарегистрирован:
2008-07-15
Сообщений: 666

Цитата:

1. Связываю таблицу первую:
$query_join = "LEFT JOIN Message115 AS b ON (a.Message_ID=b.Object_ID AND b.Checked = '1')";
$query_select = "count(b.Message_ID) AS cnt_mess";
$query_group = "b.Object_ID";
$result_vars = "\$cnt_mess";
2. Связываю таблицу вторую:
$query_join = "LEFT JOIN Message117 AS c ON (a.Message_ID=c.Object_ID)";
$query_select = "count(c.Message_ID) AS cnt_rtg";
$query_group = "c.Object_ID";
$result_vars = "\$cnt_rtg";


Как и сказал Asiat, вы сначала переменной присваиваете значение, а потом ее опять переопределяете, пишите сразу так:
Код:
$query_select = "count(b.Message_ID) AS cnt_mess, count(c.Message_ID) AS cnt_rtg";
$query_join = "LEFT JOIN Message115 AS b ON (a.Message_ID=b.Object_ID AND b.Checked = '1') ";
$query_join .= "LEFT JOIN Message117 AS c ON (a.Message_ID=c.Object_ID)";

итд

Ксю доставляет...
31.03.2011, 18:19
Ответить | Цитировать
Гость
Гость

Denis, так я уже делал и еще раз сейчас попробовал.
Вылезает "Ошибка в функции вывода объектов.", видно потому что не указан $query_group.
Заполняешь, например, $query_group = "b.Object_ID";
и получается белеберда в выводе кол-ва комментариев и рейтинга по объектам, точнее наверное по первому объекту неправильное кол-во - в несколько раз больше, трудно даже объяснить эту белеберду.
Все поля перебрал в $query_group - все равно белеберда.
Что в $query_group, какое поле?
31.03.2011, 23:06
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Будет намного продуктивнее, если вы напишите сюда нужный вам sql-запросю

Temet nosce...
01.04.2011, 18:20
Ответить | Цитировать
Гость
Гость

DiGGy, спасибо большое за идею по счетчику в новостях или юзерах при добавлении комментариев и т.п.! Сделал как Вы сказали, добавил в новости, юзерам и т.д. доп. поля счетчиков, оказалось так просто! Теперь минимум запросов и научился делать счетчики улыбка
01.04.2011, 23:32
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Аминь.

Тока вы б еще сюда свой код решения выложили для тех, кто еще не научился.

Temet nosce...
198 196 2011-04-02 15:18:44 11139
Страницы: 1  |  2  |  3
Описание проекта