使用Codeigniter接收单个结果 [英] Receiving the single result with Codeigniter

查看:58
本文介绍了使用Codeigniter接收单个结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的模型查询:

    public function getWorkDays ($id, $month){
    $query = $this->db->query("SELECT count(DISTINCT (day)) FROM hours WHERE userid = ? AND month = ?", array($id, $month));
    $row = $query->result();
    return $row[0];
}

我的观点:

    <p>Total Days: <?php echo var_dump($workDays); ?></p>

错误:

总天数:object(stdClass)#35(1){[" count(DISTINCT(day))] => string(1)" 9}

Total Days: object(stdClass)#35 (1) { ["count(DISTINCT (day))"]=> string(1) "9" }

9应该是正确的值,但是我无法通过简单的结果回显来获取它.我也很感兴趣,为什么我对查询结果obj(["count(DISTINCT(day))"])有一部分查询.

9 should be a correct value but I can't get it with a simple result echo. Also I'm interested why do I have a part of my query at the result obj (["count(DISTINCT (day))"]).

我不想使用活动记录,查询应该保持原样.

I don't want to use Active record the query should stay like it is.

推荐答案

问题是,CodeIgniter默认将返回StdClass对象而不是数组,因此,如果要使用 return $ row [0];,则需要使用数组返回函数.

The problem is, CodeIgniter will return a StdClass Object by default rather than an array, so if you want to use return $row[0];, you'll need to use an array returning function.

来自 CodeIgniter的文档:

使用 result_array()

此函数以纯数组形式返回查询结果,如果不生成任何结果,则以空数组形式返回查询结果.通常,您将在foreach循环中使用它,如下所示:

This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:

$query = $this->db->query("YOUR QUERY");

foreach ($query->result_array() as $row)
{
   echo $row['title'];
   echo $row['name'];
   echo $row['body'];
}

您可以执行以下操作:

public function getWorkDays ($id, $month){
    $query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
    $row = $query->result_array();
    return $row[0];
}

您还说过您想要一个单一的结果,这样做可能更容易:

You also said you wanted a single result, it might even be easier for you to do this:

public function getWorkDays ($id, $month){
    $query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
    return $query->row_array();
}

这是给您的简单回声...

Here's for your simple echo...

public function getWorkDays ($id, $month){
    $query = $this->db->query("SELECT count(DISTINCT day) as workDays FROM hours WHERE userid = ? AND month = ?", array($id, $month));
    $row = $query->row_array();
    return $row['workDays'];
}

这篇关于使用Codeigniter接收单个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆