我有一个输出到图的循环。随着时间的推移,我的“历史”表中的数据急剧增长,我希望通过选择其他的结果来减少输出到图表上的数量。
我怎样才能用我的代码做到这一点呢?
<?php
$cdate = 0;
$counter = 0;
$sql = "SELECT * FROM history WHERE time < '$ctime' ORDER BY time asc";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$cdate = ($row["time"]);
$sql1 = "SELECT AVG(value) AS avgval FROM history WHERE time = '$cdate' AND time < '$ctime'";
$result1 = $conn->query($sql1);
if ($result1->num_rows > 0) {
while($row1 = $result1->fetch_assoc()) {
$avgval = $row1["avgval"];
echo "[new Date((".($row["time"] * 1000).")), ".$avgval."],";
}
}
}
}
?>例如,如果我的表(历史记录)中有这样的内容:
id -时间
1- Group1 - 100 -- 730
2-第2组- 200 - 730
3-第1组- 110 - 740
第二组-- 235 -- 740
5-第1组- 310 - 750
6-2组- 485 - 750
我如何才能输出1,2和5,6的平均值--忽略#4和#5?
发布于 2017-10-14 12:39:22
<?php
$cdate = 0;
$counter = 0;
$sql = "SELECT * FROM history WHERE time < '$ctime' ORDER BY time asc";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$cdate = ($row["time"]);
$sql1 = "SELECT AVG(value) AS avgval FROM history WHERE time = '$cdate' AND time < '$ctime'";
$result1 = $conn->query($sql1);
$i = 0; // incrementor
if ($result1->num_rows > 0) {
while($row1 = $result1->fetch_assoc()) {
++$i; // plus one
if($i % 2 == 0) { // check if $i is even
$avgval = $row1["avgval"];
echo "[new Date((".($row["time"] * 1000).")), ".$avgval."],";
}
}
}
}
}
?>https://stackoverflow.com/questions/46744502
复制相似问题