2011-06-23 8 views
1

私はCodeIgniterのに初心者ですとCIのフォーラムやGoogleでこの答えを探してきた、とここでも...使用アレー

私はこれで検索しましたOK、私は見つけるたびにこれに関連する答えはforeach()を使用して配列からデータを取り出し、foreachループでそれを使って何かを行います。これは私がやりたいことではありません。

私は、サイトタイトル、説明、要約、キーワードなどのサイト情報を、ただ1つの行のデータベーステーブルに格納するサイトを構築しています(htmlに行ってそこで行う必要はありません)。 ...)

これまでのところ、私は私のモデルではこのようなものがあります:私のコントローラで

function getAll(){ 
    $q = $this->db->get('system'); 

    if($q->num_rows() > 0){ 
      return $q->row(); 
    } 
} 

を私は持っている:

function index(){ 
    $this->load->model("system_model"); 
    $data[] = $this->system_model->getAll();  
    $this->load->view('home', $data); 
} 

と私の見解では、私は非常にSを持つことを望みます(HTMLタグのみ記述されている)を意味するもの:

<title><?php echo $this->title; ?></title> 
<description><?php echo $this->description; ?></description> 

あなたはforeachループは、このインスタンスでは動作しないでしょうし、私はこれを行うための最善の方法は、コントローラ内の配列をループであることを信じていない見ることができるように個々の配列部分を個別の変数としてビューに渡します。

これはすべて可能ですか?私はそのように最初の答えにダニを与えている

EDIT

は解決策を見つけるために右のトラックに私を置く(それはその作業は100%正しいではないかもしれませんが)これは私が仕事を得るために、数1に答える続いたが、その後ビューで、私は次のようでした:

<title><?php echo$system[0]->title; ?></title> 
+0

<title><?php echo $title; ?></title> <description><?php echo $description; ?></decription> 

また、(一般に)、データベースクエリに(結果を使用)を使用すると、複数の行をしたいように聞こえるよう不必要なdbコールのように聞こえます。私はあなたが少なくともこれをキャッシュすることを計画していることを願っています。 – Aren

+0

私はそれを行う方法を学んだときに私はそれをキャッシングしています今のところ私はちょうど – Arazmus

答えて

2

$にデータを与える[]配列のキー名を

function index(){ 
    $this->load->model("system_model"); 
    $data['mydata'] = $this->system_model->getAll();  
    $this->load->view('home', $data); 
} 

とビューあなたがエコーすることができ、ファイルまたはループまたは誰teverモデルでデータベースを照会するための最良の方法は、次の操作を実行することで、そのキー

echo $mydata 

または

foreach($mydata as $md){ 
echo $md 
} 

に基づいて:ここで

function get_user_by_id($id){ 
    $this->db->where('id', $id); 
    $query = $this->db->get('users'); 
    $result = $query->result_array(); 
    return $result; 
} 
+0

を学んでいます。データを取得したい場合は、以下を削除してください:$ this-> db-> where( 'id、$ id) ; – tylerpenney

+0

オブジェクト指向のメソッドを使用してデータを取得するかどうかによって異なります。彼は彼のビューの例に示されているように、この記法を好むようです。 OPerを実行する場合は、result()を使用します。これは配列記法を使ってアクセスできるオブジェクトを返します。 – freshnode

+0

このメソッドを使って 'code'を実行すると返信してくれてありがとうございます<?php echo $ system; ?> 'code'私は配列を取得し、$ system-> titleを試してみます。私はエラーが発生します.. – Arazmus

0

あなたが行く:

お使いのコントローラで使用:

function index(){ 
    $this->load->model("system_model"); 
    $data = $this->system_model->getAll(); 

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

あなたのビューは、このようになります。

function getAll(){ 
    $q = $this->db->get('system'); 

    if($q->num_rows() > 0){ 
      return $q->result(); 
    } 
+0

返信のためにこんにちは感謝、私はまだ上記のコードを使用してエラーを取得..未定義の変数のタイトル.. – Arazmus

+0

私はvar_dump $データ変数は、配列 0 => パブリック 'id' =>文字列 '1'(長さ= 1) public 'title' =>文字列 'EVECTK'(長さ= 6) パブリック 'decription' =>文字列 'EVECTKはEVEオンライン企業の法人向けツールです。比類なき機能を提供します。そして最高のすべて - その無料! 'length = 129) 'キーワード '=>文字列'(長さ= 54) '(長さ= 128) ' – Arazmus

+0

元のコードでは、" $ data [] = "コントローラに "$ data ="を使用してください。理由は何もないので、配列に余分なレベルを追加しています。私の他の編集と一緒にこれを使用し、それはうまく動作するはずです:) – freshnode

関連する問題