оператор foreach возвращает только 1 элемент - PullRequest
0 голосов
/ 24 сентября 2011

Я использую сеансы для хранения просматриваемых продуктов, но у меня возникают проблемы с печатью всех элементов при запросе к базе данных.

Контроллер

$hello_world = $this->session->all_userdata();


foreach($hello_world as $key=>$product_id) {
 $query['products']  = $this->Global_products->globalFindProducts($product_id);

  echo $product_id; // Right here it echos all the items in the session.

 }

Модель

function globalFindProducts($product_id) 
{
$this->db->join('price','product.modelNumber = price.modelNumber','left')->where('product.modelNumber',$product_id);
$this->db->group_by('product.modelNumber');
$query = $this->db->get('by.product');
return $query->result();
}

Просмотр

<?php foreach($products as $product) { ?>
<div><?php echo $product->name; ?></div>
<?php } ?>

На мой взгляд, я вижу только один элемент, а не все.Может кто-нибудь дать мне совет, как бы вы подошли к решению этой проблемы?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Попробуйте, я на самом деле не кодировал в CodeIgniter, так что это лучшее предположение:

Контроллер

$hello_world = $this->session->all_userdata();

foreach($hello_world as $key=>$product_id) {
    $query['products'][]  = $this->Global_products->globalFindProducts($product_id);
    echo $product_id; // Right here it echos all the items in the session.
}

Примечание: здесь я создаю $query['products'] массив, поэтому все результаты из
$this->Global_products->globalFindProducts($product_id); хранятся

0 голосов
/ 29 сентября 2011

Где вы делитесь результатами своих баз данных с представлением?

Обычно вы можете использовать что-то вроде:

$data['hello_world'] = $this->session->all_userdata();

Затем при вызове представления включите этот массив данных:

$this->load->view('someview', $data);

Таким образом, внутри вашего представления вы можете запустить цикл for:

<?php foreach($hello_world as $product) { ?>
<div><?php echo $product->name; ?></div>
<?php } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...