php - 如何在此循环中选择所有其他结果? [PHP]

标签 php mysql

我有这个输出到图表的循环。 随着时间的推移,我的“历史”表中的数据急剧增长,我想通过选择所有其他结果来减少输出到图表上的数据量。

如何使用我的代码执行此操作?

<?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] --- [ticker] --- [value] --- [time]

1 --- 第 1 组 --- 100 --- 730

2 --- 第 2 组 --- 200 --- 730

3 --- 第 1 组 --- 110 --- 740

4 --- 第 2 组 --- 235 --- 740

5 --- 第 1 组 --- 310 --- 750

6 --- 第 2 组 --- 485 --- 750

我怎样才能只输出#1、#2 的平均值和#5、#6 的平均值 - 忽略#4 和#5?

最佳答案

<?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."],";    
                }
            }  
        }
    }     
}
?>

关于php - 如何在此循环中选择所有其他结果? [PHP],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46744502/

相关文章:

php - Wordpress - 将联系表单 7 字段作为单独的列保存到数据库中

javascript - Facebook没有抓取og :image when using sharethis

mysql - 在 MySQL 中使用 UPDATE 和 JOIN 时出现语法错误 "near FROM"?

mysql - 为什么我的 `delete where id in` 语句删除表中的所有记录?

mysql - 计算机重新启动后数据库值是否应设置回默认值

php - 如何避免对我的数据库的大量调用? (MySQL + PHP)

php - 如何在一行中获取数组(fetch)和元素?

PHP 'if' 语句跨越多行?

PHP插入数据

mysql - 将MySQL建表查询转换为H2语法