สอบถามการบวกค่าข้อมมูลใน Array ครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการบวกค่าข้อมมูลใน Array ครับ

สอบถามการบวกค่าข้อมมูลใน Array ครับ

<?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'];




              }
      
?>
 <!-- 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 $EquipCode=>$EquipName){
 echo '<tr>';
  echo '<td>'. $EquipName .'</td>';

 for($j=1;$j<=$lastDay;$j++){
  
  $numBook = isset($allReportData[$EquipCode][$j]) ? '<div>'.$allReportData[$EquipCode][$j].'</div>' : 0;
  echo "<td class='number'>", $numBook, "</td>";

 }

  echo "<td class=''>", $SUMBook, "</td>";
echo '</tr>';//ปิดแถวตาราง HTML
}
echo "</table>";


echo "<pre>";
print_r($allReportData);
echo "</pre>";


?>


        </div>
      </div>
        <!-- /.col -->


Bondsanti 11-07-2019 11:41:40

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลองใช้ array_sum() 

<?php
$a = array(
    "10"=>array(
        "25"=>200,
        "26"=>300
        )
    ,
    "20"=>array(
        "25"=>100,
        "26"=>150
        )
    ) ;
// ถ้าเป็น arayy หลายมิติ    
foreach($a as $k=>$v){
    echo array_sum($v)."\r\n";
}
echo "\r\n";
// ถ้าเป็น array มิติเดียว
$b = array(
        "25"=>200,
        "26"=>300
        );	
echo array_sum($b)."\r\n";        
?>


ninenik 11-07-2019
 ความคิดเห็นที่ 2
ก็ยังไม่ได้อยู่ดีครับ
<?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> &nbsp; &nbsp;ใบรายงานสรุปเที่ยว
          <br>&nbsp; &nbsp;ห้างหุ้นส่วนจำกัด แม่เมาะวิศวกรรมเหมืองแร่
          <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>


bondsanti 12-07-2019 10:25
 ความคิดเห็นที่ 3
ไม่แน่ใจว่าเป็นการรวมข้อมูลแบบไหน
 
ถ้าเป็นข้อมูล นับค่าเพิ่มในลูป while,for,foreach ต้องการเก็บค่า หรือเพิ่มค่า หรือเก็บค่า sum ข้อมูล
ในลูป สามารถกำหนดเป็นตัวแปร แล้วบวกค่าเพิ่มเข้าไปทีละค่าได้ เช่น
 
$total_sum = 0;
for($i=1;$i<10;$i++){
   $total_sum+=$i;
}

echo $total_sum;
หรือ
 
$arr_sum = array(); // สร้างตัวแปร array
for($i=1;$i<10;$i++){
   $arr_sum[]=$i; // เก็บข้อมูลที่จะเพิ่มเข้าไปใน array
}

echo array_sum($arr_sum);  // ใช้ฟังก์ชั่น sum ข้อมูลจาก array
 
การ sum ข้อมูลจาก array ตัว array ตัองเป็น array มิติเดียว อย่างในตัวอย่าง ก็คือ
 
$arr_sum[0]....$arr_sum[9] เก็บค่าตั้งแต่ 1 ....  9
array_sum ก็คือผลลัพธ์ ของ 1+2+3+4+5+6+7+8+9 = 45


ninenik 12-07-2019
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ