Codeigniter: передача данных от помощника из двух таблиц базы данных - PullRequest
0 голосов
/ 03 апреля 2012

Так что в основном у меня есть помощник -

function records()
{        
  $ci = get_instance();                     
  $ci->db->order_by("date", "desc");
  $ci->db->limit(20);
  $query = $ci->db->get('records');
  $data =array();
  foreach($query->result_array() as $orders)
  {
     $data[] = $orders;
  }            
  return $data;
}   

Мне нужно передать данные для просмотра, но в настоящее время я передаю данные только из записей таблицы. Кроме того, после того, как я получил $ data [] из записей, мне нужно проверить идентификатор текущей записи, а затем передать те же $ data [] все данные пользователя из другой таблицы, которая вместо этого является users. Как мне это сделать? Поэтому, в основном, я сначала отключаю все данные из записей, проверяю, от какого пользователя эта запись, а затем ищу этого пользователя с помощью get_where ('users', array ('id' => $ data ['user_id'])); и добавьте пользовательские данные либо в новый массив, либо в тот же массив $ data []. Это что-то выполнимое? Если да, пожалуйста, покажи мне пример этого.

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Я думаю, что вы хотите выполнить объединение?

  $ci->db->order_by("date", "desc");
  $ci->db->limit(20);
  $query = $ci->db->from('records')->join('users', 'records.user_id=users.id')->get();

http://codeigniter.com/user_guide/database/active_record.html

Убедитесь, что вы изменили запрос, чтобы использовать правильное имя поля в таблице записей, которая ссылается на пользователяЯ бы.Приведенные выше комментарии верны - помощники абсолютно не место для запросов.На самом деле, я не могу вспомнить ни одного хорошего примера использования get_instance для захвата объекта CI в помощнике, вероятно, это должны быть независимые от CI функции.

0 голосов
/ 03 апреля 2012

Во-первых;всегда рекомендуется использовать модели для операций с базой данных.Для получения информации о базе данных из моделей также рекомендуется использовать библиотеки.Помощники могут использоваться для целей, в которых вам не всегда нужны базы данных, такие как вычисления даты, функции поиска и т. Д.

Во-вторых;Если я вас правильно понимаю, вы берете записи из таблицы в массив, а затем хотите проверить, есть ли у пользователя записи в этом массиве (или что-то в этом роде), какие данные пользователя поступают из другой базы данных?Если да, то просто вы можете получить все записи в массиве, получить информацию о пользователе (например, идентификатор пользователя) в другом массиве или переменной.Оставшаяся часть - это все операции с массивами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...