Kenji
kenji****@club*****
2008年 6月 18日 (水) 08:06:02 JST
On Wed, 18 Jun 2008 06:31:43 +0900 Yuta Sakurai <sakur****@gmail*****> wrote: > 櫻井です。 > > 自己解決しました・・・。 > > $row = $query->result_array(); > $row[0]['count(*)']; > > で、取得することができました。 これ単に PHP の文法の問題ですね。オブジェクトでも $query->row()->{'count(*)'} でたぶん取得できるんじゃないかと思います。 ただ、あまり綺麗でないですね。 例えば、こんな感じの方がいいのではないかと思います(これは AR 使ってないケースですが)。 $sql = "SELECT count(*) AS count FROM ..."; $query = $this->db->query($sql); return $query->row()->count; ちなみに、メモリを気にしない富豪的なコードは、 $query = $this->db->getwhere(...); return $query->num_rows(); > Yuta Sakurai さんは書きました: > > CodeIgniterのモデルクラスで、レコード行数を調べようとしています。 > > SQLでは、SELECT count(*)でレコード行数が返ると聞いたので、 > > $this->db->select('count(*)'); > > とやってから、 > > $query = $this->db->getwhere(...); > > とクエリを投げたのですが、その後$query->row()->count(*)として、帰ってき > > た値を取ることができずに困っています。 > > (そもそも、こう書くと構文エラーとなってPHPのインタプリタ(?)に怒られます) > > > > $row = $query->row(); > > > > これでXdebugで$rowの中身を見たところ、確かにcount(*)という変数が存在して > > います。 > > (ちゃんと行数が中に入ってます) > > PHPって、(*)なんて特殊な記号使った変数名、アリなんでしょうか・・・? > > アリだとしたら、どのように書けばアクセスできるんでしょうか。 > > > > どなたか、お教えいただけますでしょうか。 > > > > > > > -- > > 名古屋市立大学大学院 経済学研究科 > 櫻井 雄大 (Y_Sakurai) > mail: sakur****@gmail***** > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users