เราสามารถเปลี่ยนข้อมูลที่ดึงจากฐานข้อมูลได้ไหมครับ
Code (PHP)
<?php
$_GET['year'] = '2015';
$q="
SELECT month,CATEGORY,total,year FROM FMDATA.dbo.ViewCountJob
WHERE year = '".$_GET['year']."'
ORDER BY month,CATEGORY Asc
";
$qr=mssql_query($q)or die ("ไม่สามารถดึงข้อมูล [".$q."] ได้");
while($rs=mssql_fetch_array($qr,MYSQL_ASSOC)){
$char_month=$rs['month']; // หาตัวเลขสองตัวระบุเดิอน เช่น 01,12,11
$arr_name[$rs['CATEGORY']]=$rs['CATEGORY']; //$rs['CATEGORY']; กว่า
$json_data[$rs['CATEGORY']][$char_month]=intval($rs['total']); // เก็บข้อมูลแต่ละเดือนถ้ามี
}
// จัดรูปแบบข้อมูลก่อนแปลงเป็น json object
// วนลูปแสดง array โดยยึด key ของชื่อสินค้า ซึ่งในที่นี้จะมีสินค้าสองรายการ
if(count($arr_name)>0){
foreach($arr_name as $val_name => $value){ // วนลูปเพื่อใช้งาน ชื่อสินค้า
// เทคนิคการกำหนดข้อมูลให้ครบเดือน กรณีข้อมูลของบางเดือนไม่มีในฐานข้อมูล
for($i=1;$i<=12;$i++){
//$char_chk=$rs['month'];
$char_chk=str_pad($i,1,"0",STR_PAD_LEFT);
//echo $char_chk;
if(!isset($json_data[$val_name][$char_chk])){ // ตรวจสอบ key เดือนไหนไม่มี
$json_data[$val_name][$char_chk]=0; // .ให้กำหนดค่าเป็น 0
}
}
ksort($json_data[$val_name]); // จัดเรียง key ข้อมูลใหม่ ให้ไล่จาก 01,02,....,11,12
$json_series[]=array(
"name"=>$value,
"data"=>array_values($json_data[$val_name]) // เปลี่ยน key เป็น 0,1,2,...
);
}
}
//print_r($json_series);
$json= json_encode($json_series); // แปลงข้อมูล array เป็น ข้อความ json object นำไปใช้งาน
// ทำให้ json ไฟล์รองรับ callback function สำหรับ cross domain
if(isset($_GET['callback']) && $_GET['callback']!=""){
echo $_GET['callback']."(".$json.");";
}else{
echo $json;
}
exit;
?>
จากโค้ด เป็นการถึงข้อมุลจากฐานข้อมูลมาเพื่อทำเป็นกราฟแท่งครับ พอดีผมมีปัญหาอยู่ว่า ในฐานข้อมูลของผม มีการบันทึกของมูลของ กลุ่มสินค้าเป็นตัวอักษรแค่ F O S ครับ ดังนั้นผมจึงอยากสอบถามท่านผู้รู้ว่า เราสามารถแทนค่าตัว F O S นี้ได้ไหมครับ โดยที่ไม่ต้องไปยุ่งเกี่ยวกับ ฐานข้อมูล ครับ
ขอบคุณครับTag : PHP, MySQL
Date :
2015-10-20 10:10:59
By :
boongum
View :
750
Reply :
3
ลองดูฟังก์ชั่นนี้ดุ str_replace
Date :
2015-10-20 11:30:02
By :
.
ได้แล้วครับ ขอบคุณมากครับ
ประวัติการแก้ไข 2015-10-20 13:42:22
Date :
2015-10-20 13:40:45
By :
boongum
Date :
2015-10-20 13:45:35
By :
mr.win
Load balance : Server 05