ChartJS和PHP循环制作MySQL数据源条形图



<!DOCTYPE html>
<html>
	<head>
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js"></script>
		<title>Bar Chart using PHP MySQL and Chart JS</title>



	</head>

	<body>	   

<?php
$servername = 'localhost';
$username = 'phpsamples';
$password = 'phpsamples';
$db = 'phpsamples';
// Create connection
$conn = mysqli_connect($servername, $username, $password, $db);
mysqli_set_charset($conn, "utf8");
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$buildings = "SELECT building_id, building_name FROM  buildings order by building_id";
$runQuerybuildings = mysqli_query($conn, $buildings);
while ($rowbuildings = mysqli_fetch_array($runQuerybuildings)) {
	$building_id = $rowbuildings['building_id'];
	$building_name = $rowbuildings['building_name'];
?>

<div id="<?php echo "container".$building_id; ?>" style="width: 75%;">
		<canvas id="<?php echo "canvas".$building_id; ?>"></canvas>
	</div>

<?php
}
?>	
	<script>

		window.onload = function() {

<?php
$buildings = "SELECT building_id, building_name FROM  buildings order by building_id";
$runQuerybuildings = mysqli_query($conn, $buildings);
while ($rowbuildings = mysqli_fetch_array($runQuerybuildings)) {
	$building_id = $rowbuildings['building_id'];
	$building_name = $rowbuildings['building_name'];

	$gas_consumption = '';
	$consumption_date = '';
	$query = "SELECT consumption_date, gas_consumption FROM costs where building_id=" . $building_id;
	$runQuery = mysqli_query($conn, $query);
	while ($row = mysqli_fetch_array($runQuery)) {
   	$gas_consumption = $gas_consumption . '"' . $row['gas_consumption'] . '",';
   	$consumption_date = $consumption_date . '"' . $row['consumption_date'] . '",';
	}
	$gas_consumption = trim($gas_consumption, ",");
	$consumption_date = trim($consumption_date, ",");
?>   
	    

			var <?php echo "ctx".$building_id; ?> = document.getElementById('<?php echo "canvas".$building_id; ?>').getContext('2d');
			window.myBar = new Chart(<?php echo "ctx".$building_id; ?>, {
				type: 'bar',
				data: {
			labels: [<?php echo $consumption_date; ?>],
			datasets: [{
				label: 'Consumption',
				backgroundColor: 'rgb(255, 99, 132)',
				borderColor: 'rgb(255, 99, 132)',
				borderWidth: 1,
				data: [<?php echo $gas_consumption; ?>]
			}]

		},
				options: {
					responsive: true,
					legend: {
						position: 'top',
					},
					title: {
						display: true,
						text: '<?php echo $building_name; ?>'
					},
				scales: {
        yAxes: [{
            ticks: {
                beginAtZero:true
            }
        }]
    }


				}
			});

		


    
<?php
}
?>	 
};
	</script>	 
	</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值