Craig Ward
Craig Ward

Reputation: 2485

Codeigniter: Retrieving data from multiple tables and displaying results

I am developing my first big application using codeigniter and need a little help as I am fairly new to it all. I know how to get records out of the DB and display them, but I now have to get results from two tables and display them. I pass $data to the view, it works fine for $data['prop'] but I can't get the rest.

$data['prop'] = $this->ManageProperty_model->get_property_details($p_id);
$data['img'] = $this->ManageProperty_model->get_property_images($p_id);
$this->load->model('ManageBranch_model');
$data['branch'] = $this->ManageBranch_model->get_branch_details($p_id);

I usually echo out results like so:
<?php foreach ($prop as $p) : ?>
<?php echo $p->ID; ?>
<?php endforeach; ?>
Even if there is only 1 row being returned as I am not sure of another way.do I need a foreach for img and branch?

Upvotes: 2

Views: 3983

Answers (2)

Kieran Andrews
Kieran Andrews

Reputation: 5885

How about using a join?

I dont know whats in your model but if you try something like

        $this->db->from('property');
        $this->db->join('branch', 'branch.id = property.id');

You can put a where statement in there too if you need something particular.

This means you have a more complex model but less loops and arrays and messy stuff in the view which is what you want.

Upvotes: 2

Josh K
Josh K

Reputation: 28883

Yes, currently you're just getting one or the other. You're probably better to put it into a multilevel array like $data['property']['prop'].

Upvotes: 0

Related Questions