このスクリプトに問題があります... 正常に動作しますが、クエリで見つかったレコードの合計についてはそうではありません。
「mix」と呼ばれるORMにこの機能があります。mixes、generos、mixes_generos の 3 つのテーブルがあります。
テーブル「ミックス」またはテーブル「ジェネロス」で、誰でも検索できます。
public function search($query, $itemsperpage, $page)
{
if (empty($page))
$page = 1;
$offset = ($page - 1) * $itemsperpage;
$orm = $this->join('mixes_generos', 'LEFT')->on('mix.id', '=', 'mixes_generos.mix_id')
->join('generos', 'LEFT')->on('generos.id', '=', 'mixes_generos.genero_id')
->where_open()
->or_where('mix.nombre', 'LIKE', '%'.$query.'%')
->or_where('mix.descripcion', 'LIKE', '%'.$query.'%')
->or_where('generos.nombre', 'LIKE', '%'.$query.'%')
->where_close()
->and_where('mix.estatus', '=', 'active')
->order_by('mix.fecha_produccion', 'DESC')
->order_by('mix.track', 'DESC');
$this->_search_total = $orm->reset(FALSE)->count_all();
$orm = $orm->limit($itemsperpage)->offset($offset);
return $orm;
}
public function search_total()
{
return $this->_search_total;
}
次に、コントローラーにこれがあります:
$data = ORM::factory('mix')->search('pop music', 10, 1);
合計をエコーしたい場合は、次のようにします。
echo $data->search_total();
私の見解では、情報を印刷します:
foreach($data->find_all() as $mix)
echo $mix->nombre;
http://s10.postimage.org/cvnr28nop/records.jpg
このリンクでは、結果が表示されます。列「records_founds」と、見つかった「レコード」の数、3 対 1?? をよく見てください。
そして、それが主な問題です...ミックスのデータを印刷すると、1ではなく3が表示されるためです。また、group_by('mix.id')を追加し、何も追加しません:(
どう思いますか?
ありがとうございました