0

我对这个脚本有一些问题......工作正常,但不适用于查询中找到的全部记录。

我的 ORM 上有一个名为“mix”的函数。有 3 个表:mixes、generos 和 mixes_generos。

我可以在“mixes”表或“generos”表中搜索任何人。

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 vs 1??。

这是主要问题......因为当我打印混合数据时显示 3 而不是 1。我还添加了一个 group_by('mix.id') 并且什么都没有:(

你怎么看?

谢谢

4

0 回答 0