2011-12-14 2 views
1

Im получить список из моей базы данных со следующим (в моем контроллере):Codeigniter получить имя из другой таблицы в обзорных

$view["interactions"] = $this->interacties->getInteractionsId($id); 

Это дает массив все в моей базе данных в таблице «взаимодействие».

Im оприходование это мой взгляд со следующим Еогеасп цикла:

<?php if($interactions): ?> 
    <?php foreach($interactions as $interaction): ?> 
     <tr class="gradeX"> 
     <td><a href="<?=site_url('interactie/single/'.$interaction['id'])?>"><?=$interaction['datum']?></a></td> 
     <td><?=$interaction['gebruikers_id']?></td> 
     <td><?=$interaction['gesproken_met']?></td> 
     <td><?=$interaction['interactie']?></td> 
     </tr> 
    <?php endforeach; ?> 
<?php else: ?> 
    <p>Geen interacties</p> 
<?php endif; ?> 

Это прекрасно работает, но теперь я хочу, чтобы изменить $interaction['gebruikers_id'] к имени, которое находится в моей таблице "пользователей, который называется" НА. Нормальный Я бы получил идентификатор и использовал другую функцию get. Но поскольку это в цикле foreach, я не уверен, как это сделать.

Это функция в модели:

public function getInteractionsId($id) { 
    $this->db->select('*'); 
    $this->db->where('bedrijf_id', $id); 
    $query = $this->db->get('interacties'); 

    return $query->num_rows() > 0 ? $query-> result_array() : FALSE; 

} 
+0

Вы можете использовать объединение в своем запросе, чтобы результат 'getInteractions' также содержал имя пользователя. Пожалуйста, покажите код для этой функции, если вам нужны предложения о том, как это сделать. – Mischa

+0

Я добавил функцию, я не знаком с функцией соединения в CI, так что, возможно, вы могли бы помочь. – Augus

ответ

1

Если вы измените функцию модели это:

public function getInteractionsId($id) { 
    $this->db->select('interacties.*, gebruikers.naam'); 
    $this->db->join('gebruikers', 'interacties.gebruikers_id = gebruikers.id'); 
    $this->db->where('bedrijf_id', $id); 
    $query = $this->db->get('interacties'); 
    return $query->num_rows() > 0 ? $query-> result_array() : FALSE; 
} 

Вы можете сделать это на ваш взгляд:

<?=$interaction['naam']?> 

Если вы не знакомы с основами базы данных соединений, проверить this article ,

+0

, который работал на 100%, спасибо большое. И спасибо за ссылку на статью :). – Augus

+0

Graag gedaan ;-) – Mischa

0

Поскольку вы находитесь в представлении, вы должны делать только презентационный материал, никаких дополнительных обращений к базе данных.

Вы можете сделать это в контроллере за дополнительную петлю foreach.

Тем не менее, лучший вариант ИМХО пропатчить метод getInteractionsId(), чтобы присоединиться к с таблицей пользователей, так что вы будете иметь как $ взаимодействие [ «gebruikers_id»] и $ взаимодействие [ «users_naam»].

Что бы вы ни закончили, подумайте о fat models and skinny controllers.

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