2012-04-03 2 views
0

Поэтому в основном у меня есть помощник -Codeigniter: Передача databa от помощника из двух таблиц базы данных

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

+1

Прежде всего, всегда создавайте модели для подключения к базе данных. Помощники не используют запросы к базе данных. Используйте структуру MVC с CI, чтобы быстро создавать приложение. http://codeigniter.com/user_guide/overview/mvc.html – safarov

+0

Могу ли я загружать модели в помощники? –

+0

ОК, во всяком случае, о моем первом вопросе, можете ли вы мне помочь? –

ответ

1

Я думаю, вы хотите присоединиться?

$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

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

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

Смежные вопросы