繁体   English   中英

num_rows()和result_array()在同一个函数中? 笨

[英]num_rows() and result_array() in the same function ? codeigniter

我有个问题。 我在模型中具有选择产品的功能:

public function getProducts()
{
    $this->db->select(dbColumnProductsId . ',' . dbColumnProductsName . ',' . dbColumnProductsImage . ',' . dbColumnProductsPrice . ',' . dbColumnProductsStock . ',' . dbColumnCategoryId . ',' . dbColumnCategoryName);
    $this->db->join(dbTableCategory, dbTableCategory . '.' . dbColumnCategoryId . '=' . dbTableProducts . '.' . dbColumnProductsCategory);
    $this->db->order_by(dbColumnProductsId, 'DESC');
    $this->db->from(dbTableProducts);
    $query = $this->db->get();

    if($query->num_rows() > 0)
    {
        return $query->result_array();
    }

    return FALSE;
}

但是现在我需要对这些产品进行分页。 如何在同一函数中使用“ num_rows”函数? 这样,就必须创建一个单独的功能。 对不起,我英语不好

您可以将它们都添加到数组中

public function getProducts()
{
    $this->db->select(dbColumnProductsId . ',' . dbColumnProductsName . ',' . dbColumnProductsImage . ',' . dbColumnProductsPrice . ',' . dbColumnProductsStock . ',' . dbColumnCategoryId . ',' . dbColumnCategoryName);
    $this->db->join(dbTableCategory, dbTableCategory . '.' . dbColumnCategoryId . '=' . dbTableProducts . '.' . dbColumnProductsCategory);
    $this->db->order_by(dbColumnProductsId, 'DESC');
    $this->db->from(dbTableProducts);
    $query = $this->db->get();

    $retun_array = array();
    $retun_array['rows'] = $query->num_rows();
    if($retun_array['rows'] > 0)
    {
         $retun_array['data']= $query->result_array();
    }

    return $retun_array;
}

您可以在获取模型返回值后在控制器中使用此函数,例如,如果将返回数据存储在$ retun_array中,则

$rows = $retun_array['rows'];
if($rows > 0){
    $data = $retun_array['data']
}

要分页必须经过三个阶段来处理:

  • 计数产品,可以使用$ db-> count_all_results(); 功能
  • 找到极限并开始
  • 按限制选择产品并开始

不要使用num_rows,因为它太慢了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM