0

結果をカウントするためのカスタムクエリがcodeigniterにあります。

return $this->db->query("SELECT COUNT(*) FROM post WHERE MATCH (title, description)     AGAINST ('+$search_string*' IN BOOLEAN MODE)", NULL, TRUE);

しかし、これは1行しか生成していませんが、phpmyadminでこのクエリを実行すると、正しい結果が表示されます。私がしているのは何が悪いのですか?

4

4 に答える 4

3
 $q = $this -> db -> query($your_custom_query);
 return $q -> num_rows();

これはうまくいくはずですが、COUNT(*)をテーブル内の任意のフィールドまたは*に置き換える必要があります。フィールドをお勧めします。言うように..タイトル。

$ this-> db-> queryが返され、オブジェクトを配列に変換する必要があるため、クエリは機能しませんforeach ($q->result() as $row) {}

あなたも試すことができます return $this -> db -> query($your_custom_query)->result();

于 2013-03-13T08:48:59.390 に答える
2
$query =  $this->db->query("SELECT COUNT(*) as totalCounnt FROM post WHERE 
MATCH (title, description) 
AGAINST ('+$search_string*' IN BOOLEAN MODE)", NULL, TRUE);

$result = $query->row();

return $result->totalCount; 
于 2013-03-13T09:18:27.803 に答える
1

これは、CIアクティブレコードクラスを使用してカウントが行われる方法です

    $this->db->where('name', $name);
    $this->db->where('id !=', $artist_id);
    $this->db->from('artists');

    return $this->db->count_all_results();
于 2013-03-13T08:51:04.133 に答える
1

私はここにquery()...ドキュメントに余分なパラメータがあるとは思わない

しかし、徹底的にbut if i run this query in phpmyadmin then it shows correct results..それが正しいかどうかを確認するためだけに行われた最後のクエリをプリッティングしてみることができます...あなたはそれを行うことができます..

 $test=$this->db->query("SELECT COUNT(*) FROM post WHERE MATCH (title, description)     AGAINST ('+$search_string*' IN BOOLEAN MODE)"); //no need of other parameters
 echo $this->db->last_query();exit;

クエリが実行された後、結果を生成する必要があります...

あなたの場合はそうなるでしょう。

  return $this->db->query("SELECT COUNT(*) FROM post WHERE MATCH (title, description)     AGAINST ('+$search_string*' IN BOOLEAN MODE)")->row_array(); 

結果を生成する方法

于 2013-03-13T08:57:17.830 に答える