如何从数据库的“登录用户”中选择数据到图形

时间:2019-05-21 19:43:28

标签: php mysql graph charts

我需要一些代码的帮助。我想从MySQL 选择数据到网页上的图形。 数据必须来自当前 已记录 用户 用户中,并且当我选择将数据存储到卡上可以正常工作,但是当我将其选择为图形时,图形就会消失。

我正在为卡片使用此代码,并且效果很好:

 $sql = "SELECT energyexpenditure FROM energy4project WHERE user_id =  '{$_SESSION["user_id"]}' ORDER BY time_stamp DESC LIMIT 1;";

这是我当前图形的代码,不显示基于登录用户的数据:

<?php
header('Content-Type: application/json');

        $host = "localhost";
        $user = "`blabla";
        $pwd = "blabla";
        $db = "blabla";
        $conn = new mysqli($host, $user, $pwd, $db);

        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }


         $sql = "SELECT energyexpenditure, time_stamp FROM energy4project ORDER BY time_stamp DESC LIMIT 7;";

        $result = $conn->query($sql);


$data = array();
foreach ($result as $row) {
    $data[] = $row;
}

mysqli_close($conn);

echo json_encode($data);
?>

当我在图形代码中实现卡片中的代码时,它不起作用。
为什么SELECT WHERE user = '{$_SESSION["user_id"]}在图表中不起作用?

1 个答案:

答案 0 :(得分:0)

如果我很好理解,您的Mysql查询将返回空结果。尝试如下修改您的代码:

if(!$result = $conn->query($sql)) {
    echo "query error."; 
    die();
}

$data = array();

while($row = $result->fetch_array(MYSQLI_ASSOC))
{
    $data[] = $row;
}


/* free result set */
$result->free();

/* close connection */
$conn->close();

//uncomment the below line if you want to check de result of your mysql query because it seems be good.
//var_dump($data); die(); echo "<pre>"; 

echo json_encode($data);

因此,如果您没有任何mysql错误,请验证数据库名称,表名称是否正确以及表中是否包含数据。

参考:https://www.php.net/manual/en/mysqli-result.fetch-array.php

致谢