[Codeigniter-users] (無題)

Back to archive index

tsuji kuni kunit****@gmail*****
2012年 7月 13日 (金) 14:38:04 JST


kunitsujiです。

通常、DBから値を取り出して処理するときは、次のような感じです。

$query = $this->db->query($sql);
if ($query->num_rows() > 0)
{
    $result = $query->result();
}
この時の$resultをforeach()すれば、通常は取り出せます。
このあたりは、ユーザーガイドのデータベースクラス、レコードセットの取得?あたりに説明があるので、そちらを参考にかかれてはいかがでしょうか

2012年7月13日 14:31 小島健太郎 <kojim****@gmail*****>:

> よくある検索システムを作っています。
>
> 現状、下記のようにして検索条件により抽出したデータを、
> ビューに渡し、ビュー側では下記のようにして値を取り出して表示しています。
>
>
> *** コントローラ *****************************
>
> $sql="...";//postされた条件でsql文作成
> $data['rsAll']=$this->db->query($sql);//DB検索し、結果セットを取得
> $this->load->view('v_listAll', $data);//結果をビューに渡す
>
> *** ビュー ***********************************
>
> <?php foreach ($rsAll->result() as $All): ?>
>   print "<td>".$All->dept_name."</td>";
>   print "<td>".$All->assessment."</td>";
>   :
> <?php endforeach; ?>
>
> **********************************************
>
> これをビューに渡さずに、コントローラ内で配列の値を
> 取り出したいと思っているのですが(Excel出力処理へ利用しようとしています)
> どうしたら取り出せるかがわかりません。
>
> 試せる範囲で、以下のようなことを試したのですが、
> うまくいきません。
>
> 初歩的なことかもしれませんが、取り出し方をご教示願います。
>
>
> (1)コントローラ内(上記の「$data['rsAll']=$this->db->query($sql)」のあと)で
> foreach ($rsAll->result() as $All){
>     $dept_name=$All->dept_name;
>   ...などと記述(ビューと全く同じ方法で記述)
> ⇒Fatal error: Cannot use object of type CI_DB_mysql_result as array in...
> のエラー
>
> (2)コントローラ内(上記の「$data['rsAll']=$this->db->query($sql)」のあと)で
> foreach ($data['rsAll']->result as $All){
>     $dept_name=$All->dept_name;
>   ...などと記述
> ⇒Invalid argument supplied for foreach() のエラー
>
> (3)$data['rsAll']['dept_name']などと書いてみる
> ⇒Fatal error: Cannot use object of type CI_DB_mysql_result as array in...
> のエラー
>
>
> 以上宜しくお願いします。
>
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Download 



Codeigniter-users メーリングリストの案内
Back to archive index