Codeigniter 获取玩家已完成的目标总和
Posted
技术标签:
【中文标题】Codeigniter 获取玩家已完成的目标总和【英文标题】:Codeigniter get sum of goals a player has made 【发布时间】:2013-05-03 20:23:11 【问题描述】:我有一个数据库。这是它的mysql脚本。一个玩家可以在表格中出现更多我想要做的是得到这个玩家所有目标的总和。
脚本:
CREATE TABLE IF NOT EXISTS `spelerswedstrijden` (
`Id` int(5) NOT NULL AUTO_INCREMENT,
`spelerId` int(2) NOT NULL,
`wedstrijdId` int(5) NOT NULL,
`goals` int(5) DEFAULT NULL,
`assisten` int(5) DEFAULT NULL,
`gelekaarten` int(5) DEFAULT NULL,
`rodekaarten` int(5) DEFAULT NULL,
PRIMARY KEY (`Id`)
)
我的型号代码:
function getGoals($id)
$this->db->where('spelerId', $id);
$this->db->from('spelerswedstrijden');
$goals = $this->db->select_sum('goals');;
return $goals;
使用此代码给我以下错误:CI_DB_mysql_driver 类的对象无法转换为字符串 有什么想法可以解决这个问题吗? 提前致谢
【问题讨论】:
【参考方案1】:另一种方法:
$this->db->select('sum(goals) AS total_goals');
【讨论】:
【参考方案2】:function getGoals($id)
$this->db->select('COUNT(id) as TotalGoals');
$this->db->where('spelerId', $id);
$this->db->group_by('spelerId');
$goals = $this->db->get('goals');;
return $goals->row();
在控制器中像这样访问它
$result = $this->mymodel->getGoals($id);
echo $result->TotalGoals;
【讨论】:
这个返回给我一个数组 +1 但有一个小的修正:if($goals->num_rows>0) return $goals->row(); else return 0;
我有这样的:function getGoals($id) $this->db->select('COUNT(id) as TotalGoals'); $this->db->where('spelerId', $id); $this->db->group_by('spelerId'); $goals = $this->db->get('spelerswedstrijden');返回$目标->行();在我的另一个模型中 $result = $this->spelerswedstrijden_model->getGoals($speler->Id); $speler->goals = $result->TotalGoals;它应该返回 5 但它返回 2 我认为这是因为我在数据库中有 2 行该 id 。
我发现第一行应该是 $this->db->select('SUM(goals) as TotalGoals');感谢您的帮助【参考方案3】:
试试;
function getGoals($id)
$this->db->select_sum('goals');
$this->db->where('spelerId', $id);
$this->db->from('spelerswedstrijden');
$goals = $this->db->get();
return $goals;
【讨论】:
以上是关于Codeigniter 获取玩家已完成的目标总和的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter AJAX 从 MySQL 数据库获取数据而不刷新的正确方法