繁体   English   中英

帮助mysql sum和group查询以及管理jquery图形的结果

[英]Help with mysql sum and group query and managing results for jquery graph

我有一个正在尝试设计的系统,该系统将从数据库检索信息,以便可以将其绘制在jquery图形中。 我需要检索信息,并以某种方式将其放入必要的坐标格式(例如,两个坐标var d = [[1269417600000, 10],[1269504000000, 15]]; )。

我要从中选择的表是存储带有字段的用户投票的表:

points_id (1=vote up, 2=vote down),
user_id,
timestamp, (UNIX TIMESTAMP)
topic_id

我需要做的是选择所有投票,并以某种方式将其分组为相应的日期,然后将每天1票和2票之间的差求和。 然后,我需要以某种方式以前面显示的适当的绘图格式显示数据。 例如4月1日,4票。 除最后一个绘图项外,数据需要用逗号分隔,因此我不确定如何处理。 我在下面展示了一个我需要的东西的例子,但这是不正确的,

echo "var d=[";
$query=mysql_query(
    "SELECT *, SUM(IF(points_id = \"1\", 1,0))-SUM(IF([points_id = \"2\", 1,0)) AS 'total'
    FROM points LEFT JOIN topic ON topic.topic_id=points.topic_id
    WHERE topic.creator='$user' GROUP by timestamp
    HAVING certain time interval"
);
while ($row=mysql_fetch_assoc($query)){
    $timestamp=$row['timestamp'];
    $votes=$row['total'];
    echo "[$timestamp,$vote],";
}
echo "];";

只使用-1作为下注肯定会更加明智。 然后,您可以简单地运行SUM(points_id)

要生成对JavaScript友好的表示法,您可以使用良好的旧版json_encode

$sql = "SELECT `timestamp`, SUM(points_id) FROM ..."; // yadda yadda
$result = mysql_query($sql);

$out = array();
while ($row = mysql_fetch_assoc($result)) {
    $out[] = array((int) $row['timestamp'], (int) $row['total']);
}
echo "d = " . json_encode($out) . ";\n";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM