从数据库中检索数据

时间:2014-07-02 15:21:20

标签: php mysql arrays codeigniter

我想在一个项目数组中检索并插入一组图像。 我的项目数组有这个配置:

Array (
    [projectos] => Array (
        [0] => stdClass Object (
        [id_projecto] => 1
        [titulo] => Titulo do projecto
        [descricao] => Descrição
        [data] => 0000-00-00
        [id_categoria] => 3
    )
    [1] => stdClass Object (
        [id_projecto] => 5
        [titulo] => Teste
        [descricao] => Teste
        [data] => 2014-07-02
        [id_categoria] => 2
    )
    [2] => stdClass Object (
        [id_projecto] => 7
        [titulo] => Teste Projecto
        [descricao] => Yo
        [data] => 2014-07-02
        [id_categoria] => 3
        )
    )
)  

这就是我如何使循环检索图像并在每个项目中插入一个数组

for ($i=0; $i < count($data['projectos']); $i++)
{
    $data['projectos'][$i]['imagens'][] = $this->imagem_model->get_many_by('id_projecto', $data['projectos'][$i]->id_projecto);
}

这样的结果是一个空白页面,在Codeigniter中经常意味着PHP语法中的错误,我无法看到它!

get_many_by()功能正常运行,这不是问题。我正在使用最新版本的Codeigniter Framework。

注意:如果我使用这个循环,结果很好,但它不是我想要的数据格式:

foreach ($data['projectos'] as $row)
{
    $data['projectos']['imagens'][] = $this->imagem_model->get_many_by('id_projecto',$row->id_projecto);            
}

1 个答案:

答案 0 :(得分:1)

您尝试访问类似数组的对象。 $data['projectos'][$i]['imagens']应该更像$data['projectos'][$i]->imagens ...并且您需要声明该类具有该公共变量,在您尝试追加它之前将其初始化为空数组。

$data['projectos'][$i]->imagens = array();
// ...
$data['projectos'][$i]->imagens[] = 'a value';

但为什么呢?我怀疑get_many_by函数已经返回一个数组。所以你需要做的就是改变你的for循环以包含这个声明,这样就可以将数组分配给这个Object变量:

$data['projectos'][$i]->imagens = $this->imagem_model->get_many_by('id_projecto', $data['projectos'][$i]->id_projecto);