Reputation: 215
Im trying to populate 3 tables in the view by passing 3 different arrays from the controller to the view (which get data from the database). But I get an error as
Fatal error: Call to undefined method stdClass::result_array() in C:\xampp\htdocs\SEP\application\views\ManagerViewProjectDatabase.php on line 39
The controller method is as
function ManagerProjects()
{
$this->load->model('ViewProjectsModel');
$new=$this->ViewProjectsModel->ManagerViewProjects('new');
$ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
$completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
$data=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
$this->username=$this->session->userdata('username');
$this->DashBoardMainView($this->username);
$this->load->view('ManagerViewProjectDatabase',$data);
}
the model class function is as
function ManagerViewProjects($status)
{
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$query=$this->db->get();
$q1=$query->row();
return $q1;
}
and the view is as
<tbody>
<?php foreach ($new->result_array() as $row): ?>
<tr>
<td><?php echo $row['project_id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['start_date'];?></td>
<td><?php echo $row['deadline'];?></td>
<td><?php echo $row['description'];?></td>
<td><?php echo $row['language'];?></td>
<td><?php echo $row['framework'];?></td>
</tr>
<?php endforeach; ?>
</tbody>
ManagerViewProjectDatabase Line 39 is the beginning of the foreach.
Im new to code igniter so Im not sure what goes on here with the error. Please point me in the right direction. Thanks in advance
Upvotes: 1
Views: 9223
Reputation: 79
also you can rewrite your model function like this:
function ManagerViewProjects($status)
{
$this->db->where('status',$status);
return $this->db->get('project');
}
It's becomes more compact and readable.
Upvotes: 0
Reputation: 79
Use result_array() in your model page:
Change your codes as follows:
model:
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$q1=$this->db->get()->result_array();
return $q1;
Controller:
function ManagerProjects()
{
$this->load->model('ViewProjectsModel');
$new=$this->ViewProjectsModel->ManagerViewProjects('new');
$ongoing=$this->ViewProjectsModel->ManagerViewProjects('inprogress');
$completed=$this->ViewProjectsModel->ManagerViewProjects('completed');
$data['result']=array('new'=>$new, 'inprogress'=> $ongoing,'completed'=>$completed);
$this->username=$this->session->userdata('username');
$this->DashBoardMainView($this->username);
$this->load->view('ManagerViewProjectDatabase',$data);
}
View:
<tbody>
<?php foreach ($result as $key=>$value): ?>
<tr>
<td><?php echo $value['project_id'];?></td>
<td><?php echo $value['name'];?></td>
<td><?php echo $value['start_date'];?></td>
<td><?php echo $value['deadline'];?></td>
<td><?php echo $value['description'];?></td>
<td><?php echo $value['language'];?></td>
<td><?php echo $value['framework'];?></td>
</tr>
<?php endforeach; ?>
</tbody>
Upvotes: 0
Reputation: 660
Problem at Your Modal. model class function is as
So change Your model code Like this
function ManagerViewProjects($status)
{
$this->db->select('*');
$this->db->from('project');
$this->db->where('status',$status);
$query=$this->db->get();
return $query;
}
Your code results convert to row and return so only one result return.
so you return $query Variable for all results return .
This code useful for you
Upvotes: 4