我的模型查询:
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>
错误:
总天数:对象(stdClass)#35(1){[“count(DISTINCT(day))”] =&gt; string(1)“9”}
9应该是一个正确的值,但我无法用简单的结果回声得到它。另外我很感兴趣为什么我在结果obj中有一部分查询([“count(DISTINCT(day))”])。
我不想使用Active记录,查询应保持原样。
答案 0 :(得分:2)
问题是,CodeIgniter默认返回StdClass对象而不是数组,所以如果你想使用return $row[0];
,你需要使用数组返回函数。
来自CodeIgniter's Documentation:
使用result_array()
此函数将查询结果作为纯数组返回,或者在未生成结果时返回空数组。通常你会在foreach循环中使用它,如下所示:
$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];
}
你还说你想要一个结果,你可能更容易做到这一点:
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();
}
修改强>
这是你简单的回声...
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'];
}