ขอสอบถามเกี่ยวกับ การรวมค่าตัวเลขใน array หลายมิติครับ
อยากให้รวม ค่า ดังภาพครับ
ลองใช้ฟังค์ชั่นแล้ว มัยไม่ขึ้นครับ
Code (PHP)
<?php
include("config/config.inc.php"); //connect database
$month_check=$_REQUEST["month_check"];
$year_check=$_REQUEST["year_check"];
$Txt_dateStart=date("d-m-Y",strtotime($dateStart));
$Txt_dateStop=date("d-m-Y",strtotime($dateStop));
if ($month_check=="01") {
$Text_month="มกราคม";
} elseif ($month_check=="02") {
$Text_month="กุมพาพันธ์";
} elseif ($month_check=="03") {
$Text_month="มีนาคม";
} elseif ($month_check=="04") {
$Text_month="เมษายน";
} elseif ($month_check=="05") {
$Text_month="พฤษภาคม";
} elseif ($month_check=="06") {
$Text_month="มิถุนายน";
} elseif ($month_check=="07") {
$Text_month="กรกฎาคม";
} elseif ($month_check=="08") {
$Text_month="สิงหาคม";
} elseif ($month_check=="09") {
$Text_month="กันยายน";
} elseif ($month_check=="10") {
$Text_month="ตุลาคม";
} elseif ($month_check=="11") {
$Text_month="พฤศจิกายน";
} elseif ($month_check=="12") {
$Text_month="ธันวาคม";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>รายงาน Production ประจำเดือน <?php echo $Text_month;?> <?php echo $year_check;?> </title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="dist/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Favicon -->
<link rel="shortcut icon" href="img/fv_mme.png">
<!-- Google Font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body>
<div class="wrapper">
<!-- Main content -->
<section class="invoice">
<!-- title row -->
<!-- title row -->
<div class="row">
<div class="col-xs-12">
<img src="img/fv_mme.png"class="pull-left" width="55"></img> ใบรายงานสรุปเที่ยว
<br> ห้างหุ้นส่วนจำกัด แม่เมาะวิศวกรรมเหมืองแร่
<small class="pull-right">ประจำวันที่ : <?php echo $Text_month;?> <?php echo $year_check;?> <input type="button" class="btn btn-success btn-sm" name="Button" value="Print"
onclick="javascript:this.style.display='none';window.print();"></small>
<hr>
</div>
<!-- /.col -->
</div>
<?php
$allEquipData = array();
$sql2="SELECT * from equipment where Equip_category='รถรับ' order by Equip_id ASC";
$resultA=mysql_db_query ($objDB, $sql2);
while($arr2=mysql_fetch_array($resultA)){
$allEquipData[$arr2['Equip_id']] = $arr2['Equip_codename'];
}
/*
echo "<pre>";
print_r($allEquipData);
echo "</pre>";
*/
//เรียกข้อมูลการจองของเดือนที่ต้องการ
$allReportData = array();
$strSQL = "SELECT production.*,equipment.*,
DAY(`Prod_date`) AS dayToday,
SUM(Oil)as Total_Oil_dt,
SUM(Prod_trip)as Total_Trip_dt,
SUM(Prod_bcm) as Total_BCM_dt,
SUM(Total_kilo) as Total_kilo_dt
FROM `production`
left join equipment on production.Equip_id=equipment.Equip_id
";
$strSQL.= "WHERE `Prod_date` LIKE '$year_check-$month_check%' AND Equip_category='รถรับ' ";
$strSQL.= "GROUP by equipment.Equip_id,dayToday";
$result=mysql_db_query ($objDB,$strSQL);
while($objResult=mysql_fetch_array($result)){
$allReportData[$objResult['Equip_id']][$objResult['dayToday']] = $objResult['Total_Oil_dt'];
}
$allEquipTotal = array();
$sql3="SELECT production.*,equipment.*,
DAY(`Prod_date`) AS dayToday,
SUM(Oil)as Total_Oil_dt,
SUM(Prod_trip)as Total_Trip_dt,
SUM(Prod_bcm) as Total_BCM_dt,
SUM(Total_kilo) as Total_kilo_dt
FROM `production`
left join equipment on production.Equip_id=equipment.Equip_id
WHERE `Prod_date` LIKE '$year_check-$month_check%' AND Equip_category='รถรับ'
GROUP by equipment.Equip_id,dayToday
";
$resultA=mysql_db_query ($objDB, $sql3);
while($arr2=mysql_fetch_array($resultA)){
$Total_sum=$Total_sum+$arr2['Total_Oil_dt'];
$allEquipTotal[$arr2['Equip_id']] = $Total_sum;
}
/*
echo "<pre>";
print_r($allEquipTotal);
echo "</pre>";
*/
?>
<!-- Table row -->
<div class="row">
<div class="col-xs-12 table-responsive">
<div class="box-header with-border">
<h3 class="box-title">สรุปเติมน้ำโซล่า รถรับ</h3>
</div>
<table class="table table-striped table-condensed table-bordered">
<thead>
<tr>
<th class="text-center">เครื่องจักร</th>
<?php
$timeDate = strtotime($year_check.'-'.$month_check."-01"); //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate); //จำนวนวันของเดือน
//echo "$timeDate";
//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){
echo '<th>' . substr("0".$day, -2) . '</th>';
} ?>
<th>Total</th>
</tr>
<?php
//วนลูปเพื่อสร้างตารางตามจำนวนรายการใน Array
foreach($allEquipData as $empCode=>$empName){
echo '<tr>';//เปิดแถวใหม่ ตาราง HTML
echo '<td>'. $empName .'</td>';
//เรียกข้อมูลขอแต่ละเครื่องจักร ในเดือนนี้
for($j=1;$j<=$lastDay;$j++){
//ตรวจสอบว่าวันที่แต่ละวัน $j ของ เครื่องแต่ละรหัส $EquipCode มีข้อมูลใน $allReportData หรือไม่ ถ้ามีให้แสดงจำนวนในอาร์เรย์ออกมา ถ้าไม่มีให้เป็น 0
$numBook = isset($allReportData[$empCode][$j]) ? '<div>'.$allReportData[$empCode][$j].'</div>' : 0;
echo "<td class='number'>", $numBook, "</td>";
}
echo "<td class='number'>", array_sum($allReportData), "</td>";
echo '</tr>';//ปิดแถวตาราง HTML
}
echo "</table>";
/*
echo "<pre>";
print_r($allReportData);
echo "</pre>";
*/
?>
</div>
</div>
<!-- /.col -->
</section>
<!-- /.content -->
</div>
<!-- ./wrapper -->
</body>
</html>
Tag : PHP
ประวัติการแก้ไข 2019-07-12 10:46:42 2019-07-12 10:47:57
Date :
2019-07-12 10:35:32
By :
bondsanti
View :
793
Reply :
7
้ิเอาโค้ดมาแปะครับ
เพราะพี่ ๆเขาจะได้ช่วยถูก
Date :
2019-07-12 10:44:58
By :
nobetaking
ตอบความคิดเห็นที่ : 1 เขียนโดย : nobetaking เมื่อวันที่ 2019-07-12 10:44:58
รายละเอียดของการตอบ ::
Code (PHP)
<?php
include("config/config.inc.php"); //connect database
$month_check=$_REQUEST["month_check"];
$year_check=$_REQUEST["year_check"];
$Txt_dateStart=date("d-m-Y",strtotime($dateStart));
$Txt_dateStop=date("d-m-Y",strtotime($dateStop));
if ($month_check=="01") {
$Text_month="มกราคม";
} elseif ($month_check=="02") {
$Text_month="กุมพาพันธ์";
} elseif ($month_check=="03") {
$Text_month="มีนาคม";
} elseif ($month_check=="04") {
$Text_month="เมษายน";
} elseif ($month_check=="05") {
$Text_month="พฤษภาคม";
} elseif ($month_check=="06") {
$Text_month="มิถุนายน";
} elseif ($month_check=="07") {
$Text_month="กรกฎาคม";
} elseif ($month_check=="08") {
$Text_month="สิงหาคม";
} elseif ($month_check=="09") {
$Text_month="กันยายน";
} elseif ($month_check=="10") {
$Text_month="ตุลาคม";
} elseif ($month_check=="11") {
$Text_month="พฤศจิกายน";
} elseif ($month_check=="12") {
$Text_month="ธันวาคม";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>รายงาน Production ประจำเดือน <?php echo $Text_month;?> <?php echo $year_check;?> </title>
<!-- Tell the browser to be responsive to screen width -->
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
<!-- Bootstrap 3.3.7 -->
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="dist/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="dist/css/skins/_all-skins.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Favicon -->
<link rel="shortcut icon" href="img/fv_mme.png">
<!-- Google Font -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body>
<div class="wrapper">
<!-- Main content -->
<section class="invoice">
<!-- title row -->
<!-- title row -->
<div class="row">
<div class="col-xs-12">
<img src="img/fv_mme.png"class="pull-left" width="55"></img> ใบรายงานสรุปเที่ยว
<br> ห้างหุ้นส่วนจำกัด แม่เมาะวิศวกรรมเหมืองแร่
<small class="pull-right">ประจำวันที่ : <?php echo $Text_month;?> <?php echo $year_check;?> <input type="button" class="btn btn-success btn-sm" name="Button" value="Print"
onclick="javascript:this.style.display='none';window.print();"></small>
<hr>
</div>
<!-- /.col -->
</div>
<?php
$allEquipData = array();
$sql2="SELECT * from equipment where Equip_category='รถรับ' order by Equip_id ASC";
$resultA=mysql_db_query ($objDB, $sql2);
while($arr2=mysql_fetch_array($resultA)){
$allEquipData[$arr2['Equip_id']] = $arr2['Equip_codename'];
}
/*
echo "<pre>";
print_r($allEquipData);
echo "</pre>";
*/
//เรียกข้อมูลการจองของเดือนที่ต้องการ
$allReportData = array();
$strSQL = "SELECT production.*,equipment.*,
DAY(`Prod_date`) AS dayToday,
SUM(Oil)as Total_Oil_dt,
SUM(Prod_trip)as Total_Trip_dt,
SUM(Prod_bcm) as Total_BCM_dt,
SUM(Total_kilo) as Total_kilo_dt
FROM `production`
left join equipment on production.Equip_id=equipment.Equip_id
";
$strSQL.= "WHERE `Prod_date` LIKE '$year_check-$month_check%' AND Equip_category='รถรับ' ";
$strSQL.= "GROUP by equipment.Equip_id,dayToday";
$result=mysql_db_query ($objDB,$strSQL);
while($objResult=mysql_fetch_array($result)){
$allReportData[$objResult['Equip_id']][$objResult['dayToday']] = $objResult['Total_Oil_dt'];
}
$allEquipTotal = array();
$sql3="SELECT production.*,equipment.*,
DAY(`Prod_date`) AS dayToday,
SUM(Oil)as Total_Oil_dt,
SUM(Prod_trip)as Total_Trip_dt,
SUM(Prod_bcm) as Total_BCM_dt,
SUM(Total_kilo) as Total_kilo_dt
FROM `production`
left join equipment on production.Equip_id=equipment.Equip_id
WHERE `Prod_date` LIKE '$year_check-$month_check%' AND Equip_category='รถรับ'
GROUP by equipment.Equip_id,dayToday
";
$resultA=mysql_db_query ($objDB, $sql3);
while($arr2=mysql_fetch_array($resultA)){
$Total_sum=$Total_sum+$arr2['Total_Oil_dt'];
$allEquipTotal[$arr2['Equip_id']] = $Total_sum;
}
/*
echo "<pre>";
print_r($allEquipTotal);
echo "</pre>";
*/
?>
<!-- Table row -->
<div class="row">
<div class="col-xs-12 table-responsive">
<div class="box-header with-border">
<h3 class="box-title">สรุปเติมน้ำโซล่า รถรับ</h3>
</div>
<table class="table table-striped table-condensed table-bordered">
<thead>
<tr>
<th class="text-center">เครื่องจักร</th>
<?php
$timeDate = strtotime($year_check.'-'.$month_check."-01"); //เปลี่ยนวันที่เป็น timestamp
$lastDay = date("t", $timeDate); //จำนวนวันของเดือน
//echo "$timeDate";
//สร้างหัวตารางตั้งแต่วันที่ 1 ถึงวันที่สุดท้ายของดือน
for($day=1;$day<=$lastDay;$day++){
echo '<th>' . substr("0".$day, -2) . '</th>';
} ?>
<th>Total</th>
</tr>
<?php
//วนลูปเพื่อสร้างตารางตามจำนวนรายการใน Array
foreach($allEquipData as $empCode=>$empName){
echo '<tr>';//เปิดแถวใหม่ ตาราง HTML
echo '<td>'. $empName .'</td>';
//เรียกข้อมูลขอแต่ละเครื่องจักร ในเดือนนี้
for($j=1;$j<=$lastDay;$j++){
//ตรวจสอบว่าวันที่แต่ละวัน $j ของ เครื่องแต่ละรหัส $EquipCode มีข้อมูลใน $allReportData หรือไม่ ถ้ามีให้แสดงจำนวนในอาร์เรย์ออกมา ถ้าไม่มีให้เป็น 0
$numBook = isset($allReportData[$empCode][$j]) ? '<div>'.$allReportData[$empCode][$j].'</div>' : 0;
echo "<td class='number'>", $numBook, "</td>";
}
echo "<td class='number'>", array_sum($allReportData), "</td>";
echo '</tr>';//ปิดแถวตาราง HTML
}
echo "</table>";
/*
echo "<pre>";
print_r($allReportData);
echo "</pre>";
*/
?>
</div>
</div>
<!-- /.col -->
</section>
<!-- /.content -->
</div>
<!-- ./wrapper -->
</body>
</html>
Date :
2019-07-12 10:48:35
By :
bondsanti
คิวรี่เอาเฉพาะผลรวมก่อน จัดเก็บเป็น array ไว้ง่ายกว่า
Code (PHP)
$rowsTTL = $db->query('select id sum(xyz) ttl from tb_abc where dte between stdte and endte group by id');
$arTTL = []; while( $row = $rowsTTL.fetch_object()){
$arTTL[$row->id] = $row;
}
แล้ว เอา $arTTL[ id ]->ttl มาใช้งาน
Date :
2019-07-12 14:53:36
By :
Chaidhanan
echo "<td class='number'>", array_sum($allReportData), "</td>";
Sum ตามมิติที่ 1 ครับ เปลี่ยนเป็น
echo "<td class='number'>", array_sum($allReportData[$empCode]), "</td>";
Date :
2019-07-12 16:02:42
By :
birdbird27
Load balance : Server 04