Php 从数据库中获取HighCHarts的数据
我正在开发一个工具,它有一个统计页面,我正在使用,我正在使用基本折线图,现在要填充这个图表,我需要一些数据。数据来自我的数据库 我得到了一个查询,其中提取了分配给特定“经理”的用户列表,现在我希望每个名称都显示在不同的行中 但是,所有的名字都出现在一行下面 我的代码:Php 从数据库中获取HighCHarts的数据,php,highcharts,Php,Highcharts,我正在开发一个工具,它有一个统计页面,我正在使用,我正在使用基本折线图,现在要填充这个图表,我需要一些数据。数据来自我的数据库 我得到了一个查询,其中提取了分配给特定“经理”的用户列表,现在我希望每个名称都显示在不同的行中 但是,所有的名字都出现在一行下面 我的代码: <?php session_start(); class ManagerStats{ public function con() { require_once('connect.php');
<?php
session_start();
class ManagerStats{
public function con()
{
require_once('connect.php');
$DB = new dbConnect();
return $DB->connect();
}
public function DontEvenKnow(){
if($_SESSION['user'] == 'manager1@gmail.com'){
$sql = "SELECT user_id, first_name FROM tbl_user WHERE user_team='bob'";
$query = mysqli_query($this->con(), $sql);
if($query){
foreach($query as $v){
echo $v;
}
}
}elseif($_SESSION['user'] == 'manager2@gmail.com'){
//$sql = "SELECT user_id FROM tbl_user WHERE user_team='oli'";
}
}
}
?>
<script>
$(function () {
$('#home_manager').highcharts({
title: {
text: '',
x: -20 //center
},
xAxis: {
categories: ['04/19', '04/20', '04/21', '04/22', '04/23', '04/24']
},
yAxis: {
title: {
text: 'Emails Sent'
},
plotLines: [
{
value: 0,
width: 1,
color: '#808080'
}
]
},
tooltip: {
valueSuffix: ''
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: [
{
name: '<?php $oko = new ManagerStats(); $oko->DontEvenKnow(); ?>',
data: [38, 78, 12, 80, 75]
},
{
name: 'Helena',
data: [23, 34, 55, 67, 34]
},
{
name: 'Martin',
data: [34, 35, 55, 69, 67]
},
{
name: 'Marta',
data: [43, 64, 75, 57, 64]
},
{
name: 'Samuel',
data: [63, 64, 75, 87, 44]
},
{
name: 'Carter',
data: [43, 54, 55, 67, 84]
}
]
});
});
</script>
在回显变量后尝试添加换行符。大概是这样的:
echo $v . "<br />";
echo$v。“
”;
这将在每个用户之后创建新行。在函数中:
$data = "";
$data_for_user = "[43, 54, 55, 67, 84]";
//For each user you need to get data from database,
//but don't do a query inside a loop because it kills perfomance
foreach($query as $v){
$data .= " {
name: '".$v["first_name" ]."',
data: ".$data_for_user."
}, ";
}
echo $data;
然后依次
series: [<?php $oko = new ManagerStats(); $oko->DontEvenKnow(); ?>]
Group concat按highcharts所需的方式获取用户的值,并用逗号分隔。
请记住,group_concat的长度限制为1024,但您可以在查询之前更改它
'SET GLOBAL group_concat_max_len=15000'
和高图数据
$data = "";
foreach($query as $v){
$data .= " {
name: '".$v["first_name" ]."',
data: [".$v["data_for_user"]."]
}, ";
}
您好,谢谢您的回答,但结果也提醒了您同样的问题,但现在您的建议是,第二个名称向下一行,但不创建新行。好的,break标记会创建新行。我想我们需要准确地定义你所说的新行的意思。你想做的事情是否有某种视觉表现?你的答案看起来不错,但它不起作用,我一点结果也没有,只是在CipherLock所做的编辑中有一个空白的图表,也许它起作用。当然我注意到了缺少的引号,但我不会挑剔:P,嗯,我已经尝试了所有提供的解决方案,但仍然未能实现我的目标,你可能有一些好的阅读。。。?。谢谢打印$oko=newmanagerstats()$oko->DontEvenKnow()??打印它并在jsfidle中尝试$oko->DontEvenKnow();必须打印这样的代码{name:'Marta',data:[43,64,75,57,64]},{name:'Samuel',data:[63,64,75,87,44]},{name:'Carter',data:[43,54,55,67,84]}好的,我修复了一些东西,一切正常,只是没有生成行
$data = "";
foreach($query as $v){
$data .= " {
name: '".$v["first_name" ]."',
data: [".$v["data_for_user"]."]
}, ";
}