Форум русской поддержки Joomla!® CMS
06.12.2016, 10:05:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

вывод данных из нескольких таблиц

 (Прочитано 125 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ingavr
Давно я тут
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 254


« : 01.11.2016, 21:34:01 »

Добрый вечер дамы и господа!
не сочтите за невежество, но уже везде обыскался - не могу найти причину.

Пытаюсь вывести данные из нескольких таблиц.
Создал свои категории. Под них своя таблица.
Есть список элементов, под них своя таблица, пытаюсь в модели вместо id категории выбрать имя категории.

Вот блок кода php:
Код:
protected function getListQuery()
    {
        $db = $this->getDbo();
        $query = $db->getQuery(true);
        $user = JFactory::getUser();
        
        $query->select('a.id, petkinds, state, a.name, description, created, created_by, a.alias');
        $query->from('#__pets_profile AS a');
                      
        $query->select('u.name as created_by');
$query->join('LEFT', '#__users AS u ON u.id = a.created_by');
                
        $query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');
        
        //print_r ($query);
        //exit();
        
        $orderCol = $db->escape($this->getState('list.ordering', 'id'));
        $orderDir = $db->escape($this->getState('list.direction', 'desc'));
        
        $query->order($orderCol. ' '. $orderDir);
        
        return $query;
    }

Поле id автора благополучно меняется на имя автора,

а вот при попытке заменить id категории (petkinds) на имя категории - блок <tbody> становится пустым!
Где может быть допущена ошибка?
Помогите, пожалуйста!
Записан
ingavr
Давно я тут
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 254


« Ответ #1 : 02.11.2016, 00:37:27 »

Для пояснения скажу, что в шаблоне вида, массив Items при включении выборки:
Код:
$query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');

Оказывается пустой.
Когда эти строки закомментировать - всё отображается.
Записан
ingavr
Давно я тут
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 254


« Ответ #2 : 02.11.2016, 02:42:33 »

массив Items при включении выборки:
Код:
$query->select('p.name AS type');
$query->join('LEFT', '#__pets_profilekinds AS p ON p.id = a.petkinds');

Оказывается пустой.
Когда эти строки закомментировать - всё отображается.

Он оказывается не пустой.
Выдаёт ошибку: Invalid argument supplied for foreach() in C:\OpenServer\domains\...views\profiles\tmpl\default.php on line 66

При этом не важно что у меня стоит в рендере там, где должно показываться имя этой категории. хоть пустым оставляю - всё равно ошибка.  Sad
Записан
Филипп Сорокин
Живу я здесь
******

Репутация: +120/-3
Offline Offline

Пол: Мужской
Сообщений: 1451


« Ответ #3 : 02.11.2016, 07:28:58 »

Вы неправильно составили запрос. Посмотрите пример в оф. руководстве:
https://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_Multiple_Tables
Записан
ingavr
Давно я тут
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 254


« Ответ #4 : 02.11.2016, 15:40:14 »

Вы неправильно составили запрос. Посмотрите пример в оф. руководстве:
https://docs.joomla.org/Selecting_data_using_JDatabase#Selecting_Records_from_Multiple_Tables
Спасибо, по изучаю.
Я, однако, делал по примеру видеоурока, там у него выборка из четырех таблиц и все одинаковым способом (вот таким, как в моём примере) и всё у него работает, а у меня, почему-то нет(
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2281



« Ответ #5 : 02.11.2016, 16:58:11 »

Мало повторять за кем то действия, надо понимать, что пишешь. Филипп дал ссылку, изучайте. От себя добавлю, что лучше для проверки результата использовать не print_r, а var_dump, так нагляднее.
Записан
ingavr
Давно я тут
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 254


« Ответ #6 : 02.11.2016, 20:44:52 »

Мало повторять за кем то действия, надо понимать, что пишешь. Филипп дал ссылку, изучайте. От себя добавлю, что лучше для проверки результата использовать не print_r, а var_dump, так нагляднее.

Спасибо за совет.
Но, мне казалось, я всё правильно понимаю: что, за чем и почему. Оказывается не всё.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet