|
|
30.03.2011, 19:14
|
|
Гость
Гость
|
Вопросы есть такие
1. какая переменная Message_ID объектов доступна в системных настройках?
2. по предыдущему сообщению по поводу $result_vars, если в системных настройках запросы к нескольким таблицам?
Спасибо.
|
|
|
30.03.2011, 23:13
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
в компоненте в поле "Префикс списка объектов:" напишите $message_select и посмотрите что у вас за запрос в итоге получается... мож там совсем не то что вы хотите?
Temet nosce...
|
|
|
31.03.2011, 04:15
|
|
Asiat
Аниматика
Зарегистрирован: 2005-12-12
Сообщений: 576
|
Конечно, вы же второй раз переопределили $result_vars (да и все остальные переменные). Просто назначайте их все один раз: $result_vars = "\$cnt_mess,\$cnt_rtg";
В системных настройках идентификаторов конкретных объектов по-моему не может быть.
|
|
|
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
Зарегистрирован: 2008-07-15
Сообщений: 666
|
Цитата:
Если смотреть по аналогии с компонентом пользователей (сист.таблицы), то в его сист.настройках доступна переменная $user.
Поэтому и думается, что в сист. настройках компонента новостей должна быть переменная объектов, т.е. идентификатор записей в таблице этого компонента, например, $message_id или $f_RowID, но такие имена не доступны в сист. настройках. Тогда какая переменная? Она обязательно должна быть.
Если идет полное отображение объекта (/news/news_1.html), то в системных настройках доступна переменная $message - номер объекта. При выводе списка объектов ( /news/ ) в системных настройках нет переменной, которая как-нибудь образом указывала на номера объектов: ведь их еще нет - запрос на выборку объектов идет после выполнения системных настроек.
|
|
|
31.03.2011, 10:13
|
|
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
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Будет намного продуктивнее, если вы напишите сюда нужный вам sql-запросю
Temet nosce...
|
|
|
01.04.2011, 18:20
|
|
Гость
Гость
|
DiGGy, спасибо большое за идею по счетчику в новостях или юзерах при добавлении комментариев и т.п.! Сделал как Вы сказали, добавил в новости, юзерам и т.д. доп. поля счетчиков, оказалось так просто! Теперь минимум запросов и научился делать счетчики
|
|
|
01.04.2011, 23:32
|
|
DiGGy
DiGGy
Зарегистрирован: 2005-04-04
Сообщений: 1546
|
Аминь.
Тока вы б еще сюда свой код решения выложили для тех, кто еще не научился.
Temet nosce...
|