0

データベースで現在の「ユーザー」サブスクリプションを検索し、その名前をビューに表示しようとしています。プライマリはIDであるため、セッションのユーザーIDを使用して、「サブスクリプション」内の適切な行を検索しています。これは正常に機能します(とにかく信じています)。私の問題は、選択したデータをビューに送信することです。ビューに表示される唯一のテキストは「配列」です。

私は何が間違っているのですか?

これが私のコードです:

    // 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;
    }   
4

3 に答える 3

1

これは、配列の値を に設定しているためです$data['package_name']result_array()配列を返します。

値を としてエコーする必要がある可能性があります$packagename['some_key']some_keyは関心のあるフィールドです。

于 2012-11-07T23:32:19.497 に答える
1

データベースから取得しているのは配列であり、それを $data['packagename'] に設定しています

適切なデータがあるかどうかを簡単に確認するには、次を使用します。

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

これにより、ページ上のすべてのデータが書き込まれます

しかし、最善の方法はループを使用することです:

<?
foreach ($data['packagename'] as &$value) 
{
    echo $value;
}
?>
于 2012-11-07T23:41:40.160 に答える
0

これを試して

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

配列からすべてのキーと値を取得します

$yourarray を配列名に変更します

于 2012-11-07T23:41:35.987 に答える