将数据从数据库发送到视图

时间:2012-11-07 23:30:19

标签: php codeigniter codeigniter-2

我正在尝试在数据库中找到“用户”当前订阅,并在视图中显示它的名称。 Primary是ID,因此我使用会话中的User ID在“subscriptions”中查找相应的行。这应该工作(我相信无论如何)。我的问题是将所选数据发送到视图。视图中显示的唯一文本是“数组”。

我做错了什么?

这是我的代码:

    // displays current subscription in view
    $userid = $this -> session -> userdata('user_id');

    $this -> db -> select('subscription');
    $this -> db -> where ('id', $userid);
    $query = $this -> db -> get('subscriptions');

    $data['packagename'] = $query -> result_array();

以下是我在观点中回应的内容:

    <? echo $packagename; ?>

编辑:我查看了CI手册中的FOREACH功能。我插上电源后感觉有点靠近了。我不想要任何过于复杂的代码,就像你刚发布的一些代码一样明智,因为我只是在学习。因此,现在在呈现页面时,将显示以下文本:string(9) "mrpopular"

    // displays current subscription in view
    $userid = $this -> session -> userdata('user_id');

    $this -> db -> select('subscription');
    $this -> db -> where ('id', $userid);
    $query = $this -> db -> get('subscriptions');

    foreach ($query->result() as $row)
    {
        $data['packagename'] = $row->subscription;
    }   

3 个答案:

答案 0 :(得分:1)

那是因为您要将数组值设置为$data['package_name']result_array()返回一个数组。

您可能需要将您的值回显为$packagename['some_key'],其中some_key是您感兴趣的字段。

答案 1 :(得分:1)

您从数据库获得的是一个数组,您将其设置为$ data ['packagename']

快速检查您是否拥有正确的数据:

<? print_r($data['packagename']); ?>

这应该写在页面上的所有数据

但最好的方法是使用循环:

<?
foreach ($data['packagename'] as &$value) 
{
    echo $value;
}
?>

答案 2 :(得分:0)

试试这个

foreach($yourarray as $key=>$val)
{
    echo "Key:" . $key. " Value: " . $val. "<br>";
}

您将从数组中获取所有键和值

使用您的数组名称

更改$ yourar