Your view should have as little PHP as possible.
Your controller should have $data
declarations and your model should return data from the database.
Your for loop seems a bit unnecessary. You really just want a 'start date' and 'end date'. You could put this in the model, or in your controller, depending whether you want these returned every time you call the get_reservations
.
Controller
public function reservations()
{
$this->load->model('admin_model');
$data['reservations'] = $this->admin_model->get_reservations();
$this->load->view('view_reservations', $data);
}
Model
function get_reservations()
{
$reservations = $this->db->get('t_reservation')->result();
foreach ($reservations as $reservation)
{
$reservation->start_date = date("d-m-Y", strtotime($reservation->date));
$reservation->end_date = date("d-m-Y", strtotime(date("Y-m-d", strtotime($reservation->date)) . " +".$reservation->days." day"));
}
return $reservations;
}
View I've edited your view as I'm guessing you want each result in a separate row?
<? foreach ($reservations as $reservations): ?>
<div class="row">
<?= $reservation->name ?>
<?= $reservation->price ?>
<?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->
<? endforeach ?>
Depending on how you want to display your data, you could have the foreach loop within the controller, and load multiple views:
Controller
public function reservations()
{
$this->load->model('admin_model');
$reservations = $this->admin_model->get_reservations();
foreach ($reservations as $reservation)
{
$data['reservation'] = $reservation;
$this->load->view('view_reservation', $data);
}
}
View
<div class="row">
<?= $reservation->name ?>
<?= $reservation->price ?>
<?= $reservation->start_date ?> - <?= $reservation->end_date ?>
</div><!-- /.row -->