[Codeigniter-users] SELECT count(*)について

Back to archive index

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




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