0

controllers/Cspages.php

public function index()
    {

        $this->load->helper('url');

        $this->load->model('gallery_model');

        $pic_unique_id = 18;  // slider

        $data['pic'] = $this->gallery_model->get_picture($pic_unique_id);

        $this->load->view('index', $data);
    }

views/index.php

<?php foreach($pic as $pic_item): ?> <img src="<?php echo base_url('assets1/images/slider/'.$pic_item->pic_item );?>"> <?php endforeach;?>

models/gallery_model.php

public function get_picture($pic_unique_id)
    {

        $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
        return $query->result(); 

    }

Now the result is:

A PHP Error was encountered

Severity: Notice

Message: Undefined property: stdClass::$pic_item

Filename: views/index.php

Line Number: 214

I wonder how to fix this result so that I could see the picture appears on my view.

2
Contributors
12
Replies
63
Views
5 Months
Discussion Span
Last Post by diafol
0

How about var_dumping the object (or stdClass) to see what's in it. The naming of your variables leaves something to be desired. Name them so that you don't have the same object name as a property name.

$data['pic'] = $this->gallery_model->get_picture($pic_unique_id);
$this->load->view('index', $data);

How about changing the method or create a new model method...(simplified - no error trapping included)...

public function get_picture_item( $pic_unique_id )
{
    $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
    $row =  $query->row();
    return $row->pic_item;
}
0

I try your model and I still get the same error messages:

Severity: Notice

Message: Undefined property: stdClass::$pic_item

Filename: models/Gallery_model.php

Line Number: 23

gallery_model.php

public function get_picture($pic_unique_id)
    {

        $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
        $row =  $query->row();
        return $row->pic_item;

    }

row 23: return $row->pic_item;

0

I thought I define it already in

views/index.php

<?php foreach($pic as $pic_item): ?>
0

No I'm talking about the model. You are getting an error in the model AFAIK.

 return $row->pic_item;

This has nothing to do with a foreach loop.

0

Sorry, just thought - if you are preparing a loop in the view - it won't work as the method just returns the single filename, not an array of records.

View

<img src="<?php echo base_url('assets1/images/slider/'.$pic );?>">

Model

public function get_picture_item( $pic_unique_id )
{
    $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
    $row =  $query->row();
    return $row->pic_item;
}

Controller

$data = [];
...
$data['pic'] = $this->gallery_model->get_picture_item($pic_unique_id);
$this->load->view('index', $data);
0

controllers/Cspages.php

public function index()
    {

        $this->load->helper('url');

        $this->load->model('gallery_model');

        $pic_unique_id = 18;  // slider

        $data['pic'] = $this->gallery_model->get_picture($pic_unique_id);

        $this->load->view('index', $data);
    }

models/Gallery_model.php

public function get_picture($pic_unique_id)
        {
            $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
            $row = $query->row();
            return $row->pic_item; 
        }

views/index.php

<img src="<?php echo base_url('assets1/images/slider/'.$pic);?>">

A PHP Error was encountered

Severity: Notice

Message: Undefined property: stdClass::$pic_item

Filename: models/Gallery_model.php

Line Number: 18

line 18:
return $row->pic_item;

-1

Any clue how to fix this error:

A PHP Error was encountered

Severity: 4096

Message: Object of class stdClass could not be converted to string

Filename: views/index.php

Line Number: 213

Backtrace:

File: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\masterlinkci2\application\site\views\index.php
Line: 213
Function: _error_handler

File: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\masterlinkci2\application\site\controllers\Cspages.php
Line: 32
Function: view

File: C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\masterlinkci2\index.php
Line: 315
Function: require_once

Line 213: <img src="<?php echo base_url('assets1/images/slider/'.$pic_item);?>">

TABLE

galleries_pictures

1 picture_unique_id int(11)

2 gallery_id int(3)

3 galleries_picture_name varchar(30)

0

It seems like I figure the answer finally yet still cannot comprehand the codes. Can someone help explain this to me:

<?php foreach($pic as $pic_item): ?>
                            <img src="<?php echo base_url('assets1/images/slider/'.$pic_item->galleries_picture_name);?>">
                        <?php endforeach;?>

First, do I really need the foreach loop? Why $pic_item->galleries_picture_name works?

0

This was my point. What are the names of the fields in that table?

Your response to my continued help was...

Well, I post similar question in codeigniter forum:
https://forum.codeigniter.com/thread-67155.html
Perhaps if anyone have an account there or can continue the answer here and help me out.

So you're not just unhappy with my help, you want to drag members to another forum to help you.

I had reason to believe the issue was the fact that the pic_item field did not exist and that was the cause of your errors. You've let it slip, that this field actually DOESN'T exist - it is galleries_picture_name.

Now you ask a totally different question. And repeat the issue with foreach.

FFS - not much makes me annoyed - but this takes the biscuit. Good luck with it.

Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.