Я не знаком с FuelPHP, но похоже, что ваша переменная $ data не отформатирована правильно. У вас есть:
foreach($results as $row => $val){
$data = $val;
}
Скорее всего, вам это нужно (вы перезаписывали значения каждый раз, когда захватывали новую строку):
foreach($results as $row => $val){
$data['results'][$row] = $val;
}
Тогда, по вашему мнению, у вас должно быть что-то вроде (вы не просматривали свои результаты):
<body>
<div class="middle">
<?php foreach($results as $result): ?>
<p><?php if (isset($result['_id'])){echo $result['_id'];} ?></p>
<p><?php if (isset($result['first_name'])){echo $result['first_name'];} ?></p>
<p><?php if (isset($result['last_name'])){echo $result['last_name'];} ?></p>
<?php endforeach; ?>
</div>
</body>
Однако это слишком сложно, потому что вы перебираете данные дважды. Ваш лучший подход, вероятно, будет следующим:
//Replace this:
foreach($results as $row => $val){
$data['results'][$row] = $val;
}
//with this:
$data['results'] = $results;
Тогда, по вашему мнению, сделайте следующее:
<body>
<div class="middle">
<?php foreach($results as $result): ?>
<p><?php if (isset($result['_id'])){echo $result['_id'];} ?></p>
<p><?php if (isset($result['first_name'])){echo $result['first_name'];} ?></p>
<p><?php if (isset($result['last_name'])){echo $result['last_name'];} ?></p>
<?php endforeach; ?>
</div>
</body>
EDIT:
Дополнительная информация , на которой основан этот ответ: (Предполагается, что FuelPHP похож на CodeIgniter, которым он выглядит)
$data['some_item'] = some_val;
$data['some_item2'] = some_val2;
при передаче в представление становится:
$ some_item (что соответствует some_val) и $ some_item2 (что соответствует some_val2)