ขอสอบถามเรื่องเกี่ยวกับการแสดงข้อมูลกราฟ จาก highchart ที่ดึงจาก DB มาแสดง
ตอนนี้กราฟมันขึ้นไม่ตรงตามสีที่กำหนดครับ
ข้อมูลไหนมันไม่มี มันก็หายไป ข้อมูลที่มีมันก็มาแทนที่สีนัน้ ๆครับ
สีฟ้า=แผนกไฟฟ้า
ดำ=แผนกเทคนิค
เขียว=สายพาน
ส้ม=โอปาเรเตอร์
ม่วง=โอปาเรเตอร์ เหมือง
แดง=ซ่อมบำรุง
อยากให้มันแสดงผลแบบ ถ้าแผนกไหนไม่มีรายการ หรือไม่มีข้อมูล ในช่วงเวลา ๆนั้น ๆ ให้มันขึ้น 0 ครับ
อันนี้มันกับหายไป แผนกอื่นเลยเลื่อนขึ้นมา ทำให้ไม่ตรงกับสีที่กำหนดครับ
ไม่ทราบว่าต้องเขียนคิวรี่ แบบไหนครับ
Code
<table class="table table-bordered" id="datatableocc" style="display:none;">
<thead>
<tr class="system">
<th class="text-center">WEEK</th>
<th class="text-center">Electrical</th>
<th class="text-center">Mechanical</th>
<th class="text-center">Belt</th>
<th class="text-center">Operation</th>
<th class="text-center">Mine OP</th>
<th class="text-center">Maintenance =(ซ่อมบำรุง,แรงสูง)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cumulative Last 14day<br><b>(<?php echo $_SESSION[totaloccWeek3];?>)</b></td>
<?php
$OCCLast3week = "select downtime.*,department.department_nameEN,COUNT(downtime.department_id)as occurrence
from downtime
left join department on downtime.department_id=department.department_id
where downtime.plan='Unplan' and downtime.downtime_line='$StrLine' and downtime_date >=date_add('$SumDate',interval -14 day)
and downtime_date <=('$SumDate')
and downtime.department_id in(10,11,12,13,20,21)
group by downtime.department_id ";
$resultLast3w=mysql_db_query($objDB,$OCCLast3week);
while($objResultOCC3W=mysql_fetch_array($resultLast3w)){
?>
<td class="text-right pr10"><?php echo $objResultOCC3W[occurrence];?></td>
<?php
$totaloccWeek3=($totaloccWeek3+$objResultOCC3W[occurrence]);
$_SESSION[totaloccWeek3]=$totaloccWeek3;
}
?>
</tr>
<tr>
<td>Cumulative Last 7day<br><b>(<?php echo $_SESSION[totaloccWeek2];?>)</b></td>
<?php
$OCCLast2week = "select downtime.*,department.department_nameEN,COUNT(downtime.department_id)as occurrence
from downtime
left join department on downtime.department_id=department.department_id
where downtime.plan='Unplan' and downtime.downtime_line='$StrLine' and downtime_date >=date_add('$SumDate',interval -7 day)
and downtime_date <=('$SumDate')
and downtime.department_id in(10,11,12,13,20,21)
group by downtime.department_id ";
$resultLast2w=mysql_db_query($objDB,$OCCLast2week);
while($objResultOCC2W=mysql_fetch_array($resultLast2w)){
?>
<td class="text-right pr10"><?php echo $objResultOCC2W[occurrence];?></td>
<?php
$totaloccWeek2=($totaloccWeek2+$objResultOCC2W[occurrence]);
$_SESSION[totaloccWeek2]=$totaloccWeek2;
}
?>
</tr>
<tr>
<td>Last 1day<br><b>(<?php echo $_SESSION[totaloccWeek1];?>)</b></td>
<?php
$OCCLast1week = "select downtime.*,department.department_nameEN,COUNT(downtime.department_id)as occurrence
from downtime
left join department on downtime.department_id=department.department_id
where downtime.plan='Unplan' and downtime.downtime_line='$StrLine' and downtime_date >=date_add('$SumDate',interval -1 day)
and downtime_date <=('$SumDate')
and downtime.department_id in(10,11,12,13,20,21)
group by downtime.department_id ";
$resultLast1w=mysql_db_query($objDB,$OCCLast1week);
while($objResultOCC1W=mysql_fetch_array($resultLast1w)){
?>
<td class="text-right pr10"><?php echo $objResultOCC1W[occurrence];?></td>
<?php
$totaloccWeek1=($totaloccWeek1+$objResultOCC1W[occurrence]);
$_SESSION[totaloccWeek1]=$totaloccWeek1;
}
?>
</tr>
<tr>
<td>Today<br><b>(<?php echo $_SESSION[totaloccWeek];?>)</b></td>
<?php
$OCCweek = "select downtime.*,department.department_nameEN,COUNT(downtime.department_id)as occurrence
from downtime
left join department on downtime.department_id=department.department_id
where downtime.plan='Unplan' and downtime.downtime_line='$StrLine' and downtime_date >=date_add('$SumDate',interval -0 day)
and downtime_date <=('$SumDate')
and downtime.department_id in(10,11,12,13,20,21)
group by downtime.department_id";
$resultw=mysql_db_query($objDB,$OCCweek);
while($objResultOCCW=mysql_fetch_array($resultw)){
?>
<td class="text-right pr10"><?php echo $objResultOCCW[occurrence];?></td>
<?php
$totaloccWeek=($totaloccWeek+$objResultOCCW[occurrence]);
$_SESSION[totaloccWeek]=$totaloccWeek;
}
?>
</tr>
</tbody>
</table>
<div class="col-md-7 pull-left">
<b>CHARTS BY NO. OF OCCURRENCE </b>
<div id="containerocc" style="width: 595px; height: 220px;"></div>
</div>
<script type="text/javascript">
$(function () {
$('#containerocc').highcharts({
data: {
table: 'datatableocc'
},
chart: {
type: 'column'
},
title: {
text: ''
},
yAxis: {
allowDecimals: false,
title: {
text: 'Number'
}
},
plotOptions: {
series: {
borderWidth: 0,
dataLabels: {
enabled: true,
rotation: 90,
y: -8, // 10 pixels down from the top
format: '{point.y}'
}
}
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
this.point.y + ' ' + this.point.name.toLowerCase();
}
}
});
});
</script>
ขอบคุณมากครับTag : PHP, MySQL, JavaScript, Ajax
Date :
2017-03-31 12:14:31
By :
bondsanti
View :
1433
Reply :
4
เช็คข้อมูลกับ Query มาตรงหรือเปล่าครับ
Date :
2017-03-31 17:23:54
By :
mr.win
เปลี่ยนเป็น RIGHT JOIN
Date :
2017-03-31 19:22:40
By :
Luz
ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2017-03-31 17:23:54
รายละเอียดของการตอบ ::
ตอนนี้คิวรี่ได้แบบนี้แล้วครับ
ถ้าจะใส่เงื่อนไขวันที่เพิ่ม ต้องใส่ตรงไหนครับ
Code
SELECT
a.department_id,a.department_nameEN,b.downtime_date,b.downtime_line,
b.plan,
IFNULL(CAST(COUNT(b.department_id) as UNSIGNED),0) occurrence
FROM department a
LEFT JOIN (downtime b)
ON(a.department_id=b.department_id)
WHERE a.department_id in(10,11,12,13,20,21,24,30)
AND b.plan='Unplan'
AND b.downtime_line='N'
GROUP BY a.department_id
ORDER BY a.department_id
ผมลองใส่เงื่อนไขวันที่แล้ว มันเป็นแบบนี้อ่ะครับ
อยากให้มันโชว์ทุกแผนก แผนกไหนไม่มีเป็น 0
Code
SELECT
a.department_id,a.department_nameEN,b.downtime_date,b.downtime_line,
b.plan,
IFNULL(CAST(COUNT(b.department_id) as UNSIGNED),0) occurrence
FROM department a
LEFT JOIN (downtime b)
ON(a.department_id=b.department_id)
WHERE a.department_id in(10,11,12,13,20,21,24,30)
AND b.plan='Unplan'
AND b.downtime_line='N'
AND b.downtime_date >='2017-04-07'
AND b.downtime_date <='2017-04-07'
GROUP BY a.department_id
ORDER BY a.department_id
Date :
2017-04-08 11:42:08
By :
bondsanti
Load balance : Server 02