Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Passing Multidimensional array to Codeigniter view

$
0
0
Hello,

I am new to codeigniter and mvc. I have been working on a test project that has a page that will display images with data from the database. I have this data saved in an array of arrays as such:
Array ( [a1] => Array ( [id] => 2 [name] => test.jpg [url] => http://localhost/images/test.jpg [date] => 2013-01-29 ) [a2] => Array ( [id] => 1 [name] => test.jpg [url] => http://localhost/images/test.jpg [date] => 2013-01-29 ) )


This is populated by the images_model:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Images_model extends CI_Model {
	
	public function get_last_ten(){
		$q = $this->db->query("SELECT * FROM images ORDER BY id DESC LIMIT 10");
		$i=1;
		foreach ($q->result() as $row)
		{
			$img['a'.$i]['id'] = $row->id;
 			$img['a'.$i]['name'] = $row->name;
 			$img['a'.$i]['url'] = $row->url;
 			$img['a'.$i]['date'] = $row->uploaded_date;
 			
 			$i++;
		}
		
		return $img;
	}
}


Then the controller sends the array of arrays to the view:

Controller code:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Welcome extends CI_Controller {

	
	public function index()
	{
		$userData = $this->session->userdata('email');
		if(empty($userData)){
			$this->load->view('head_view');
			$this->load->view('welcome_message');
			$this->load->view('foot_view');
		}
		else{
			
			$this->load->model('images_model');
			$img = $this->images_model->get_last_ten();
			//show contents of $img
			print_r($img);
			//load views
			$this->load->view('head_view');
			//pass $img to logged_in_message view
			$this->load->view('logged_in_message', $img);
			$this->load->view('foot_view');
		}
	}

}




In the view is where the problem arises, I am not sure how to write the foreach loop to get the individual elements from the "a1, a2, ..." arrays.

View Code:

	<h1>Welcome <?php echo $this->session->userdata('email'); ?> to Layton's Picture Site </h1>

	<div id="body" class="container">
		<p style="text-align:center">Thank you for coming to see Layton's photos.</p>
		<p style="text-align:center">
			<?php
				foreach($a1 as $row){
					var_dump($row);
				}
			?>
		</p>
	</div>




When I dump the $row array I get a list of strings with no index:
string(1) "2" string(8) "test.jpg" string(32) "http://localhost/images/test.jpg" string(10) "2013-01-29"


My question is how do I access each individual with no index to go on? I would like to be able to use them to display the id, name, date, and use the url to add an <img /> tag.

Any help will be greatly appreciated.

Thank you for your time.

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>