4

CI/jQueryを使用したページネーションに関するチュートリアルに従っています。チュートリアルでは、次のようにして行の総数を取得します。

$config['total_rows'] = $this->db->count_all('tblUsers');

ページネーションを定義するユーザーの総数を取得します。ただし、すべてのユーザーを取得します。私のアプリケーションでは、特定の値(この場合は「role」)が割り当てられているユーザーのみが必要です。

role = 1DB内のユーザーのみが必要です。

->count()(CIのActive Record DBクラスから)いくつかのことを試したりcount()、配列に「行」がいくつあるかを確認したりしましたが、必要な結果を得ることができませんでした。また、通常のクエリを実行してみました。select count(*) from tblusers where role = 1それから、何とかして返される数を取得しようとしましたが、残念ながら。

やってる

$config['total_row'] = $this->db->query("select count(*) from tblusers where role = '1'")->result_array();

次の配列が表示されます。

Array ( [0] => Array ( [count(*)] => 2 ) )

count(*)ただ、インデックスが読めないようです。

Message: Undefined index: count(*)

これが理にかなっていることを願っています。基本的に私は次のようなことをしようとしています。

$this->db->where('role', 1)->get('tblUsers')->count()

悲しいことに、これは機能しません:D

前もって感謝します。どんな助けでも大歓迎です。

4

3 に答える 3

5

count(*)結果列のエイリアスを作成するだけです。

select count(*) as number_of_entries from tblusers where role = '1'

number_of_entriesこれで、結果の配列のキーとして使用して、必要な値にアクセスできます。

于 2011-05-11T13:14:53.953 に答える
2

ポジティブではありませんが、必要なのはその列に名前を付けることだけのようです。例えば、

... = $this->db->query("select count(*) as colname from tblusers where role = '1'")->result_array();

私はそれがうまくいくと思います。

于 2011-05-11T13:15:35.253 に答える
2

count(*)インデックスを読み取るには、以下を使用して読み取り可能なフィールドを作成します。

select count(*) as cnt from tblusers where role = 1

今、あなたは持っているでしょう:

Array ( [0] => Array ( [cnt] => 2 ) )
于 2011-05-11T13:16:21.787 に答える