Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 3在同一查询中选择,其中;其中;日期和时间不同吗_Php_Mysql - Fatal编程技术网

Php 3在同一查询中选择,其中;其中;日期和时间不同吗

Php 3在同一查询中选择,其中;其中;日期和时间不同吗,php,mysql,Php,Mysql,我需要使用3进行查询,选择“where”是不同的日期时间。 我需要这方面的帮助,我在其他帖子中没有看到类似的内容,谢谢 问题是,我只看到第一个选择“op_suma”,而没有看到op_suma_a和op_suma_b。在这期间,我没有任何结果 <?php $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection fail

我需要使用3进行查询,选择“where”是不同的日期时间。 我需要这方面的帮助,我在其他帖子中没有看到类似的内容,谢谢

问题是,我只看到第一个选择“op_suma”,而没有看到op_suma_a和op_suma_b。在这期间,我没有任何结果

<?php

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT *, count(*) as op_suma from galog where fecha_hora > (NOW() - INTERVAL 1 MINUTE) 
        UNION
        SELECT *, count(*) as op_suma_a from galog where fecha_hora > (NOW() - INTERVAL 10 MINUTE) 
        UNION
        SELECT *, count(*) as op_suma_b from galog where fecha_hora > (NOW() - INTERVAL 30 MINUTE) group by operadora";
$result = $conn->query($sql);
if (!$conn) {
    die('No pudo conectarse: ' . mysql_error());
}

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo"<tr>";
        echo "<td>" . $row["id_red"] . "</td>";
        echo "<td>" . $row["operadora"] . "</td>";
        echo "<td>" . $row["op_suma"] . "</td>";
        echo "<td>" . $row["op_suma_a"] . "</td>";
        echo "<td>" . $row["op_suma_b"] . "</td>";
        echo "<td>" . $row["fecha_hora"] . "</td>";
        echo "</tr>";
    }
} else {
    echo "0 resultados";
}

正如我在评论中提到的,您应该使用连接而不是联合(如果我理解您试图正确执行的操作)。但是,如果必须使用union,或者没有列/值可用于联接,则可以将查询变量更改为如下所示:

$sql = "SELECT *, count(*) as op_suma, null as op_suma_a, null as op_suma_b from galog where fecha_hora > (NOW() - INTERVAL 1 MINUTE) 
    UNION
    SELECT *, null as op_suma, count(*) as op_suma_a, null as op_suma_b from galog where fecha_hora > (NOW() - INTERVAL 10 MINUTE) 
    UNION
    SELECT *, null as op_suma, null as op_suma_a, count(*) as op_suma_b from galog where fecha_hora > (NOW() - INTERVAL 30 MINUTE) group by operadora";
请注意每个联合查询中的空值。这将在每个列中为您提供值,以便您可以使用每个别名(op_-suma、op_-suma、op_-suma)获取它们,但其他列将具有空值,因此仍然很难使用


同样,这在理想情况下可以通过一个join或三个单独的查询来完成?发生了什么?请阅读。如果你不告诉我们问题是什么,我们就帮不了你。你有错误吗?显示错误消息。。错误的结果。。显示一个合适的数据样本,你会得到实际的结果和预期的结果,而不是通过编辑得到答案。将你的“答案”添加到问题的文本中。问题是它只显示最后一分钟栏的结果。