小島健太郎
kojim****@gmail*****
2012年 7月 13日 (金) 17:01:55 JST
kunitsujiさま ご回答ありがとうございます。 下記の方法で無事に値を取り出すことができました。 ユーザーガイドも参考になりました。 おかげさまで解決です。 2012年7月13日 14:38 tsuji kuni <kunit****@gmail*****>: > 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 > > >