【发布时间】:2020-08-25 03:14:29
【问题描述】:
我目前正在致力于一个信息安全项目,在该项目中加载虚构数据并使用谷歌图表进行可视化。但是,在加载柱形图时,Y 轴以一种不需要的方式加载,我已经尝试了多次测试来确定问题所在,但到目前为止还没有成功。 p>
我有 3 个表,每个表有 2 个属性。这些表是:“Phishing”、“SpearPhishing”和“RogueRouter”。它们都有两列,我想计算并显示属性名称,例如“curious”和“intent”。
正在使用以下 SQL 语法:
SELECT 'Phishing' as method, count(check_opened) as curious, count(clicked_link)
as intent FROM Phishing UNION ALL SELECT 'Spear Phishing' as method, count(check_opened)
as curious, count(clicked_link) as intent FROM SpearPhishing UNION ALL
SELECT 'Rogue Router' as method, count(page_load) as curious, count(internet_intent)
as intent FROM RogueRouter GROUP BY method
在 Phpmyadmin 中,运行时显示如下:
但是,在我的 PHP 文件中使用以下代码将数据显示为列:
<?php
$connect = mysqli_connect("localhost", "isprojectdbadmin", "isproject!23", "ISProjectDB");
$query = [THE SQL QUERY MENTIONED ABOVE]
$result = mysqli_query($connect, $query);
?>
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['method', 'curious', 'intent'],
<?php
while($row = mysqli_fetch_array($result))
{
echo "['".$row['method']."', '".$row['curious']."', '".$row['intent']."'], ";
}
?>
]);
};
var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
</script>
</head>
<body>
<div id="columnchart_material" style="width: 800px; height: 500px;"></div>
</body>
</html>
显示如下:
Y 轴的值不是从 0 到 40 的梯度,我不知道问题出在哪里。非常感谢任何帮助,甚至一些轻微的建议也会有所帮助,因为我感觉有点卡住了。此外,正如我在本文开头提到的那样,这个项目背后没有任何恶意活动,恰恰相反。
【问题讨论】:
标签: php html sql charts visualization