$query = $this->db->query("SELECT t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit, user.user_id, username, password, email, balance, user.date_added, activation_code, activated FROM user LEFT JOIN (SELECT user_id, SUM(amount_won) AS profit, count(tip_id) AS numberofbets FROM tip GROUP BY user_id) as t1 ON user.user_id = t1.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS seven_profit FROM tip WHERE date_settled > '$seven_daystime' GROUP BY user_id) as t2 ON user.user_id = t2.user_id LEFT JOIN (SELECT user_id, SUM(amount_won) AS 28profit FROM tip WHERE date_settled > '$twoeight_daystime' GROUP BY user_id) as t3 ON user.user_id = t3.user_id where activated = 1 GROUP BY user.user_id ORDER BY user.date_added DESC");
return $query->result_array();
查询在phpMyAdmin中正常运行并返回完整的结果(在附加的图像中)。但是,在CodeIgniter中打印数组,它没有一个字段的值,seven_profit,它在phpMyAdmin中运行的SQL查询中,只是这一个字段中的差异,从sql到php数组...我只是可以'为什么,在打印数组时,为什么一个字段(其值应为26)不包含任何内容?有任何想法吗?我改变了字段名称,从一个数字开始,试图修复它,但没有区别。
我知道这很复杂,看起来很糟糕,任何帮助或只是遇到类似事情的人都会很高兴知道,谢谢。
萨姆
编辑:查询格式更多:
$query = $this->db->query("
SELECT
t1.numberofbets, t1.profit, t2.seven_profit, t3.28profit,
user.user_id, username, password, email,
balance, user.date_added, activation_code, activated
FROM
user
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS profit,
count(tip_id) AS numberofbets
FROM
tip
GROUP BY
user_id
) as t1
ON
user.user_id = t1.user_id
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS seven_profit
FROM
tip
WHERE
date_settled > '$seven_daystime'
GROUP BY
user_id
) as t2
ON
user.user_id = t2.user_id
LEFT JOIN
(
SELECT
user_id,
SUM(amount_won) AS 28profit
FROM
tip
WHERE
date_settled > '$twoeight_daystime'
GROUP BY
user_id
) as t3
ON
user.user_id = t3.user_id
WHERE
activated = 1
GROUP BY
user.user_id
ORDER BY
user.date_added DESC
");
答案 0 :(得分:0)
好的问题是SQL查询包含PHP变量,这些变量必须只被视为0
或者没有给出错误的东西,因此它会在seven_profit
列中显示一个值。
当在CodeIgniter中运行查询时,它使用$seven_daystime
变量的正确值,因此当数据放入数组时结果会有所不同。
/责备疲倦