สอบถามการบวกค่าข้อมมูลใน Array ครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการบวกค่าข้อมมูลใน Array ครับ
สอบถามการบวกค่าข้อมมูลใน Array ครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <?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>' ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 --> |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ลองใช้ array_sum()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?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" ; ?> |

ความคิดเห็นที่
2
ก็ยังไม่ได้อยู่ดีครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 | <?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]> <![ 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> |

ความคิดเห็นที่
3
ไม่แน่ใจว่าเป็นการรวมข้อมูลแบบไหน
ถ้าเป็นข้อมูล นับค่าเพิ่มในลูป while,for,foreach ต้องการเก็บค่า หรือเพิ่มค่า หรือเก็บค่า sum ข้อมูล
ในลูป สามารถกำหนดเป็นตัวแปร แล้วบวกค่าเพิ่มเข้าไปทีละค่าได้ เช่น
1 2 3 4 5 6 | $total_sum = 0; for ( $i =1; $i <10; $i ++){ $total_sum += $i ; } echo $total_sum ; |
หรือ
1 2 3 4 5 6 | $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

ขอบคุณทุกการสนับสนุน
![]()