从函数中的查询中获取结果并计算 Codeigniter 中的 num_rows

Posted

技术标签:

【中文标题】从函数中的查询中获取结果并计算 Codeigniter 中的 num_rows【英文标题】:Getting result from a query in a function and count the num_rows in Codeigniter 【发布时间】:2018-09-18 05:13:02 【问题描述】:

我在模型中的查询:

public function infoReprob()
    $tid = $this->input->get('tid');
    $query = $this->db->select('histprob.tid,histprob.ketprob,histprob.updated_at,otslm.lokasi')->from('histprob')->join('otslm', 'otslm.tid = histprob.tid')->where('histprob.tid', $tid)->get();
    return $query->result();
 

上面的查询用于在 Ajax 的视图中产生结果并完美地工作。但我也需要计算结果,我正在尝试在 Controller 中使用 folowong :

function index()
    $data['reprobs'] = count($this->m->infoReprob()); // USING COUNT
    $this->load->view('front/reprob_view', $data);

并在我的 javascript 中调用变量,例如:

<?php echo $reprobs; ?>

但结果是:0,即使实际的 num_rows 也是 > 0。

请帮助解决这个问题..非常感谢您

【问题讨论】:

您是否尝试过以下答案并使用&lt;?php echo $count; ?&gt; 显示结果?我认为它应该可以解决您的问题。 【参考方案1】:

试试下面的代码

function index()
    $data['result'] = $this->m->infoReprob(); // get RESULT
    $data['count'] = $this->m->infoReprob(1); // get COUNT
    $this->load->view('front/reprob_view', $data);

public function infoReprob($count=0)

    $tid = $this->input->get('tid');
    $query = $this->db->select('histprob.tid,histprob.ketprob,histprob.updated_at,otslm.lokasi')->from('histprob')->join('otslm', 'otslm.tid = histprob.tid')->where('histprob.tid', $tid)->get();
if ($count == 1)
        return $query->num_rows();
    else
        return $query->result_array();

【讨论】:

感谢您的重播,我按照您的建议更改了代码,但仍然没有得到预期的结果,但我现在可以使用以下方法解决我的问题:data.length 在我刚刚想到的 JS 代码中。但仍然很好奇我或其他人是否需要在 JS 之外计算。谢谢

以上是关于从函数中的查询中获取结果并计算 Codeigniter 中的 num_rows的主要内容,如果未能解决你的问题,请参考以下文章

访问 Snowflake 中的结果缓存会消耗计算积分吗?

未使用 MVC 从 Json Result 获取 Ajax 成功方法中的 LINQ 连接查询结果,但结果显示正确

查询获取上个月数据(从现在开始计算)并解析 Json 以获取 Json 中的项目

C#函数式编程中的缓存技术详解

Bigquery SQL 中的拆分函数

从 PL/SQL 中的过程返回值数组