Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > พี่ๆ ช่วยด้วยครับ เรื่อง ลูปตาราง php array บวกกัน



 

พี่ๆ ช่วยด้วยครับ เรื่อง ลูปตาราง php array บวกกัน

 



Topic : 136843



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




พี่ๆครับผมอยากให้ตรงที่วงไว้มันบวกกันอะครับ Code (PHP)



q



[size=10pt]โค้ดครับ


Code (PHP)
<?php 
 
       $con=mysqli_connect("localhost","root","","dbproduct");

         
        $report = array();
        $sql = "SELECT `out_p_id`, day(`out_date`) as `out_date`,`out_p_name`, SUM(`out_total`)as`out_total` ,MIN(`stocktotal`)as`stocktotal`  ,MIN(`aptotal`)as`aptotal`
        FROM product_out WHERE `out_date` LIKE'2022-10%' GROUP BY `out_p_id` ,`out_date` ORDER BY `out_p_id` ASC";
        $result = mysqli_query($con , $sql) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
   while($row = mysqli_fetch_assoc($result)){
    $report[$row['out_p_id']][$row['out_date']] = $row['out_total'];
    $report2[$row['out_p_id']][$row['out_date']] = $row['stocktotal'];
    $report3[$row['out_p_id']][$row['out_date']] = $row['aptotal'];
             
       } 
       
 $emid = array();
  $sqlid = "SELECT `id`, `id_name`,`name`,`stockmonth`,`applan` FROM product ORDER BY `id_name`";
    $qry = mysqli_query($con , $sqlid) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
    while($row = mysqli_fetch_assoc($qry)){
        $emid[$row['id_name']] = array ('namecode'=> $row['name'],'stock'=>$row['stockmonth'],'ap'=>$row['applan']);
    /* $emid[$row['id_name']] = $row['name'];
    $emid2[$row['id_name']] = $row['stockmonth'];
     */
    
            
       }  
       
       $array_in = array();
       $sqlproduct = "SELECT  `id_c` , day(`date_c`) as `date_c`,`total_c` FROM product_in ORDER BY `id_c`";
       $result = mysqli_query($con , $sqlproduct) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
  while($row = mysqli_fetch_assoc($result)){
   $array_in[$row['id_c']][$row['date_c']] = $row['total_c'];
   
            
      }
    
    ?>
 <!DOCTYPE html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
 </head>
 <body>
  <?php
      echo "<table border=1>";

foreach($emid as $empCode=>$array){
    $nameC = $array['namecode'];
    $stock = $array['stock'];
    $ap = $array['ap'];

        echo '<tr>';
        echo '<th>รหัสสินค้า</th>';
        echo '<th>ชื่อสินค้า</th>';
        echo '<th>STOCK</th>';
        echo '<th>AP/PLAN</th>';
        echo '<th>รายการ</th>';
        $year ="2022";
    $month="10";
        $timeDate = strtotime($year.'-'.$month."-01"); 
    $lastDay = date("t", $timeDate);
for($day=1;$day<=$lastDay;$day++){
        echo '<th>' . substr("0".$day, -02) . '</th>';
        
        }
            
        
        echo "</tr>";


     echo '<tr>';
    echo '<td>'. $empCode .'</td>';
       echo '<td>'. $nameC .'</td>';
       echo '<td>'. $stock .'</td>';
       echo '<td>'.  $ap .'</td>';
       echo '<td>'. 'รับ' .'</td>';
       
       for($j=1;$j<=$lastDay;$j++){
           
        $r4 = isset($array_in[$empCode][$j]) ? '<div>'.$array_in[$empCode][$j].'</div>' : '';
        
        echo "<td class='number'>", $r4, "</td>" ; 
        
         } 
         echo "</tr>";

            echo '<tr>';
          echo '<td>'. '' .'</td>';
          
            echo '<td>'. '' .'</td>';
            echo '<td>'. '' .'</td>';
            echo '<td>'. ''.'</td>';
            echo '<td>'. 'จ่าย' .'</td>';
            
             
        for($j=1;$j<=$lastDay;$j++){
           
            $rr = isset($report[$empCode][$j]) ? '<div>'.$report[$empCode][$j].'</div>' : '';
            
            echo "<td class='number'>", $rr, "</td>"; 
            
             }
             
             echo "</tr>"; 
             echo '<tr>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. 'AP/PLAN คงเหลือ' .'</td>';
             
             
            
             for($j=1;$j<=$lastDay;$j++){
                $rr2 = isset($report2[$empCode][$j]) ? '<div>'.$report2[$empCode][$j].'</div>' : '';
                echo "<td class='number'>", $rr2, "</td>";
               
                
               
                } 
   

            echo "</tr>"; 
            echo '<tr>';
            echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. '' .'</td>';
             echo '<td>'. 'STOCK คงเหลือ' .'</td>';
             
            
             for($j=1;$j<=$lastDay;$j++){
              
                $rr3 = isset($report3[$empCode][$j]) ? '<div>'.$report3[$empCode][$j].'</div>' : '';
               
                echo "<td class='number'>",  $rr3, "</td>"; 
                
                } 
                
            echo "</tr>"; 
            echo '<tr>';
echo '<td colspan="36" align="center">'.'-----------------'. '</td>';


echo '</tr>';
 }
 
       
 mysqli_close($con);


        echo "</table>";
       
  
  ?>
 </body>
 </html>       
       
      
     
    ขอบคุณครับ
   
    
    









Tag : PHP, HTML







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2022-10-11 19:31:10 By : Orikano View : 441 Reply : 27
 

 
บวกกันแล้วยังไงต่อ ครับ
แสดงตรงไหน หรือบันทึกลงฐานข้อมูล




อันนี้
https://www.thaicreate.com/php/forum/136838.html

ขอ feedback หน่อย
ได้ผลยังไง update ด้วย
ผมจะได้รู้ว่าไม่ได้คุยอยู่กับลม






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 19:46:53 By : 009
 


 
ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 19:46:53
รายละเอียดของการตอบ ::
แค่ให้มันบวกกันในแสดงโชว์ในตารางแหละครับไม่ได้บันทึกลงในฐานข้อมูล

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:04:11 By : Orikano
 

 
ตอบความคิดเห็นที่ : 1 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 19:46:53
รายละเอียดของการตอบ ::
อันกระทู้ที่แล้ว ทำได้แล้วครับ ก็ขอบคุณพี่ๆครับ ละก็เกิดปัญหาอีกคืออันนี้แหละครับผมทำให้มันบวกกันไม่ได้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:06:36 By : Orikano
 


 
ขอเสริม จากกระทู้เก่าๆ ที่ผมต้องการคือ sample data ดีสุดและจะได้คำตอบเร็ว คือ โพสต์มาแบบนี้ คนอื่นจะได้ลองได้เมื่อสะดวก

Code (SQL)
CREATE TABLE  "CUSTOMER" 
   (	"CUST_CODE" VARCHAR2(6) NOT NULL PRIMARY KEY, 
	"CUST_NAME" VARCHAR2(40) NOT NULL, 
	"CUST_CITY" CHAR(35), 
	"WORKING_AREA" VARCHAR2(35) NOT NULL, 
	"CUST_COUNTRY" VARCHAR2(20) NOT NULL, 
	"GRADE" NUMBER, 
	"OPENING_AMT" NUMBER(12,2) NOT NULL, 
	"RECEIVE_AMT" NUMBER(12,2) NOT NULL, 
	"PAYMENT_AMT" NUMBER(12,2) NOT NULL, 
	"OUTSTANDING_AMT" NUMBER(12,2) NOT NULL, 
	"PHONE_NO" VARCHAR2(17) NOT NULL, 
	"AGENT_CODE" CHAR(6) NOT NULL REFERENCES AGENTS
);

INSERT INTO CUSTOMER VALUES ('C00013', 'Holmes', 'London', 'London', 'UK', '2', '6000.00', '5000.00', '7000.00', '4000.00', 'BBBBBBB', 'A003');
INSERT INTO CUSTOMER VALUES ('C00001', 'Micheal', 'New York', 'New York', 'USA', '2', '3000.00', '5000.00', '2000.00', '6000.00', 'CCCCCCC', 'A008');
INSERT INTO CUSTOMER VALUES ('C00020', 'Albert', 'New York', 'New York', 'USA', '3', '5000.00', '7000.00', '6000.00', '6000.00', 'BBBBSBB', 'A008');
INSERT INTO CUSTOMER VALUES ('C00025', 'Ravindran', 'Bangalore', 'Bangalore', 'India', '2', '5000.00', '7000.00', '4000.00', '8000.00', 'AVAVAVA', 'A011');
INSERT INTO CUSTOMER VALUES ('C00024', 'Cook', 'London', 'London', 'UK', '2', '4000.00', '9000.00', '7000.00', '6000.00', 'FSDDSDF', 'A006');
INSERT INTO CUSTOMER VALUES ('C00015', 'Stuart', 'London', 'London', 'UK', '1', '6000.00', '8000.00', '3000.00', '11000.00', 'GFSGERS', 'A003');
INSERT INTO CUSTOMER VALUES ('C00002', 'Bolt', 'New York', 'New York', 'USA', '3', '5000.00', '7000.00', '9000.00', '3000.00', 'DDNRDRH', 'A008');
INSERT INTO CUSTOMER VALUES ('C00018', 'Fleming', 'Brisban', 'Brisban', 'Australia', '2', '7000.00', '7000.00', '9000.00', '5000.00', 'NHBGVFC', 'A005');
INSERT INTO CUSTOMER VALUES ('C00021', 'Jacks', 'Brisban', 'Brisban', 'Australia', '1', '7000.00', '7000.00', '7000.00', '7000.00', 'WERTGDF', 'A005');
INSERT INTO CUSTOMER VALUES ('C00019', 'Yearannaidu', 'Chennai', 'Chennai', 'India', '1', '8000.00', '7000.00', '7000.00', '8000.00', 'ZZZZBFV', 'A010');
INSERT INTO CUSTOMER VALUES ('C00005', 'Sasikant', 'Mumbai', 'Mumbai', 'India', '1', '7000.00', '11000.00', '7000.00', '11000.00', '147-25896312', 'A002');
INSERT INTO CUSTOMER VALUES ('C00007', 'Ramanathan', 'Chennai', 'Chennai', 'India', '1', '7000.00', '11000.00', '9000.00', '9000.00', 'GHRDWSD', 'A010');
INSERT INTO CUSTOMER VALUES ('C00022', 'Avinash', 'Mumbai', 'Mumbai', 'India', '2', '7000.00', '11000.00', '9000.00', '9000.00', '113-12345678','A002');
INSERT INTO CUSTOMER VALUES ('C00004', 'Winston', 'Brisban', 'Brisban', 'Australia', '1', '5000.00', '8000.00', '7000.00', '6000.00', 'AAAAAAA', 'A005');
INSERT INTO CUSTOMER VALUES ('C00023', 'Karl', 'London', 'London', 'UK', '0', '4000.00', '6000.00', '7000.00', '3000.00', 'AAAABAA', 'A006');
INSERT INTO CUSTOMER VALUES ('C00006', 'Shilton', 'Torento', 'Torento', 'Canada', '1', '10000.00', '7000.00', '6000.00', '11000.00', 'DDDDDDD', 'A004');
INSERT INTO CUSTOMER VALUES ('C00010', 'Charles', 'Hampshair', 'Hampshair', 'UK', '3', '6000.00', '4000.00', '5000.00', '5000.00', 'MMMMMMM', 'A009');
INSERT INTO CUSTOMER VALUES ('C00017', 'Srinivas', 'Bangalore', 'Bangalore', 'India', '2', '8000.00', '4000.00', '3000.00', '9000.00', 'AAAAAAB', 'A007');
INSERT INTO CUSTOMER VALUES ('C00012', 'Steven', 'San Jose', 'San Jose', 'USA', '1', '5000.00', '7000.00', '9000.00', '3000.00', 'KRFYGJK', 'A012');
INSERT INTO CUSTOMER VALUES ('C00008', 'Karolina', 'Torento', 'Torento', 'Canada', '1', '7000.00', '7000.00', '9000.00', '5000.00', 'HJKORED', 'A004');
INSERT INTO CUSTOMER VALUES ('C00003', 'Martin', 'Torento', 'Torento', 'Canada', '2', '8000.00', '7000.00', '7000.00', '8000.00', 'MJYURFD', 'A004');
INSERT INTO CUSTOMER VALUES ('C00009', 'Ramesh', 'Mumbai', 'Mumbai', 'India', '3', '8000.00', '7000.00', '3000.00', '12000.00', 'Phone No', 'A002');
INSERT INTO CUSTOMER VALUES ('C00014', 'Rangarappa', 'Bangalore', 'Bangalore', 'India', '2', '8000.00', '11000.00', '7000.00', '12000.00', 'AAAATGF', 'A001');
INSERT INTO CUSTOMER VALUES ('C00016', 'Venkatpati', 'Bangalore', 'Bangalore', 'India', '2', '8000.00', '11000.00', '7000.00', '12000.00', 'JRTVFDD', 'A007');
INSERT INTO CUSTOMER VALUES ('C00011', 'Sundariya', 'Chennai', 'Chennai', 'India', '3', '7000.00', '11000.00', '7000.00', '11000.00', 'PPHGRTS', 'A010');


จะเห็นว่ามีข้อมูลบางส่วนเป็นข้อมูลส่วนตัวไม่สามารถเปิดเผยได้
ให้ทำการสมมติ เช่น ชื่อลูกค้า ก็อาจจะทำเป็น นาย ก. นาง A,. ... แบบนี้
โดย export จา่ก DB เป็น sql หรือ csv ก็ได้

Quote:
สามารถ generate แบบ online ได้ เช่น
https://www.onlinedatagenerator.com/


ด้านบนคือ sample data แบบ DDL (Data Definition Language) และ DML(Data Manipulation Language)
แบบเข้าใจง่ายๆ คือ มี CREATE TABLE และ INSERT DATA



หรือ ถ้าไม่สะดวก อย่างน้อยทำมาเป็น txt + delimiter(ตัวคั่นระหว่างคอลัมน์) เช่น

MemberTable
ID | JobTitle | EmailAddress | FullName 1 | Chef Manager | [email protected] | Eduardo Mills 2 | Front Desk Coordinator | [email protected] | Rhea Bennett 3 | Assistant Buyer | [email protected] | Mabel Simpson 4 | Assistant Buyer | [email protected] | David Lee 5 | Baker | [email protected] | Harmony Ashley


คนอื่นก็จะสามารถนำ sample data เป็น test และช่วยแก้ปัญหาได้สะดวก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:09:48 By : 009
 


 
ตอบความคิดเห็นที่ : 4 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 20:09:48
รายละเอียดของการตอบ ::
ขอบคุณพี่มากครับที่ช่วย อันที่ผมทำปัญหาคือมัน
เป็นเว็ปใช้แค่ภายในอะครับ คอมแต่ละเครื่องมันไม่มีเน็ต ผมใช้ xampp ในการทำให้เว็ปใช้ได้ แต่ใช้ได้แค่ภายใน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:15:12 By : Orikano
 


 
ตอบความคิดเห็นที่ : 5 เขียนโดย : Orikano เมื่อวันที่ 2022-10-11 20:15:12
รายละเอียดของการตอบ ::
private/public ก็สามารถทำ sample data ได้ครับ
sample data คือ ตัวอย่างข้อมูลพอสังเขป ประมาณ 5-10 records เพื่อให้เข้าใจ logic

ผมไม่ได้บอกว่าคนอื่นจะเข้าไปแก้สด หรือ remote ให้ เพราะคงหาคนทำให้ยาก เพราะเค้ามีงานทำกัน
ไม่จำเป็นต้องใช้เน็ต ต้องการแค่ ตัวอย่าง DB Table ของปัญหาครับ


แต่ผมก็ได้แค่แนะนำแหละ
อาจมีคนสะดวกสละเวลามาเฟ้นหาคำตอบแบบมโนได้
แม้อาจต้องรอบ้าง

ยังไงลองชั่งใจและเลือกดูครับ ว่าสะดวกแบบไหน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:34:17 By : 009
 


 
ตอบความคิดเห็นที่ : 6 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 20:34:17
รายละเอียดของการตอบ ::
อ่อครับ ขอโทษครับผมไม่เข้าใจเอง คิดว่าต้องใช้เน็ต ผมก็พึ่งเริ่มหัดรู้นิดๆหน่อย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 20:40:17 By : Orikano
 


 
ตอบความคิดเห็นที่ : 7 เขียนโดย : Orikano เมื่อวันที่ 2022-10-11 20:40:17
รายละเอียดของการตอบ ::
อันนี้ผมตอบแบบมโน เพราะไม่มี sample data กดรันไม่ได้ แต่อาศัยการนับช่องเอา 555

วางส่วนไหนก็ได้ที่ต้องการของตาราง (PHP)
// ผลลัพธ์ของ รับ+stock คงเหลือ ของวันสุดท้ายที่ปรากฎในตาราง (จากภาพตัวอย่าง คือ วันที่ 10)
echo $r4+$rr3;



ลองดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 21:13:24 By : 009
 


 

No. 9



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



สถานะออฟไลน์


เนต ยังไงก็ต้องใช้ คนละเครื่อง เชื่อมต่อกัน ก็คือ เนตเวิร์ค
อยู่ที่ว่าจะใช้ intra net (local web) หรือ internet (world wide web)

ส่วนอยากได้ผล รวม ก็ทำการบวก เอาเลย สร้างตัวแปรมารับ

Code (PHP)
<table>
<thead>
  <tr><td>head ......</td></tr>
</thead>
<tbody>
<?php
$ttl_rcv = 0; // buffer รวมรับ
$ttl_stk = 0; // buffer รวม stock

while( $row = $result->fetch_xxxx ) {
  $ttl_rcv += $row->rcv;
  $ttl_stk += $row->stk;
  ?><tr><td>detail .......</td></tr>
<?php } ?>
</tbody>
<tfoot>
<tr><td>Total ....<?=$ttl_rcv?><br><?=$ttl_stk?></td></tr>
</tfoot>
</table>



ประวัติการแก้ไข
2022-10-11 21:19:55
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 21:15:01 By : Chaidhanan
 


 
ตอบความคิดเห็นที่ : 9 เขียนโดย : Chaidhanan เมื่อวันที่ 2022-10-11 21:15:01
รายละเอียดของการตอบ ::
พี่ครับช่วย อธิบายเพิ่มอีกหน่อยได้มั้ยครับ ผมยังไม่ค่อยเข้าใจ รวมรับของผม มันอยู่คนละ table กับรวม stock ช่วยอธิบายเพิ่มหน่อยนะครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:01:41 By : Orikano
 


 
ตอบความคิดเห็นที่ : 8 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 21:13:24
รายละเอียดของการตอบ ::
ลองดูละครับ มันขึ้น error string+string อะครับ ขอบคุณที่ช่วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:02:52 By : Orikano
 


 
ตอบความคิดเห็นที่ : 11 เขียนโดย : Orikano เมื่อวันที่ 2022-10-11 22:02:52
รายละเอียดของการตอบ ::
ผมเชื่อแล้ว 555

เอาใหม่คราวนี้ error อะไรก็มาแปะต่อครับ

Code (PHP)
echo (int)$r4 + (int)$rr3;

// หรือ

echo intval($r4) + intval($rr3);


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:12:13 By : 009
 


 
ตอบความคิดเห็นที่ : 8 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 21:13:24
รายละเอียดของการตอบ ::
อันนี้ ลิ้งค์ database ครับ
https://drive.google.com/file/d/1AE6KA4jdN52b0DYZtTXBBCMBW5Q5YCu_/view?usp=drivesdk

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:22:12 By : Orikano
 


 
ตอบความคิดเห็นที่ : 12 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 22:12:13
รายละเอียดของการตอบ ::
https://drive.google.com/file/d/1AE6KA4jdN52b0DYZtTXBBCMBW5Q5YCu_/view?usp=drivesdk
ลิ้งค์ database ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:23:39 By : Orikano
 


 
ตอบความคิดเห็นที่ : 12 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 22:12:13
รายละเอียดของการตอบ ::
ขอบคุณมากครับ พรุ้งนี้ผมจะลองตอนนี้ นอนก่อนครับ ไม่ไหวแล้ว ขอบคุณมากที่ช่วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:25:09 By : Orikano
 


 
ตอบความคิดเห็นที่ : 15 เขียนโดย : Orikano เมื่อวันที่ 2022-10-11 22:25:09
รายละเอียดของการตอบ ::


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-11 22:33:07 By : 009
 


 
ตอบความคิดเห็นที่ : 12 เขียนโดย : 009 เมื่อวันที่ 2022-10-11 22:12:13
รายละเอียดของการตอบ ::
ทั้งสองอันไม่ได้ครับ มันเป็น0หมดเลย แต่ไม่errorนะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 06:27:43 By : Orikano
 


 

No. 18



โพสกระทู้ ( 9,559 )
บทความ ( 2 )



สถานะออฟไลน์


ก่อนอื่น result html ที่ได้ เคยเอามาดูไหม น่าจะมีขยะ เต็มไปหมด

ตัวอย่างอันนี้
Code
for($j=1;$j<=$lastDay;$j++){ $r4 = isset($array_in[$empCode][$j]) ? '<div>'.$array_in[$empCode][$j].'</div>' : ''; echo "<td class='number'>", $r4, "</td>" ; }
สีแดงถ้าข้อมูลว่าง ทำไมต้องแสดง tag เปล่า ด้วย
แบบนี้ดีกว่าไหม
Code (PHP)
for($j=1;$j<=$lastDay;$j++){
	if( isset($array_in[$empCode][$j])){ ?><div><?=$array_in[$empCode][$j]?></div><?php	
}



และก็แบบนี้ มันเยิ่นเย้อ
Code (PHP)
echo '<tr>';
        echo '<th>รหัสสินค้า</th>';
        echo '<th>ชื่อสินค้า</th>';
        echo '<th>STOCK</th>';
        echo '<th>AP/PLAN</th>';
        echo '<th>รายการ</th>';

เอาแบบนี้ดีกว่าไหม
Code (PHP)
?>
<tr>
  <th>รหัสสินค้า</th>
  <th>ชื่อสินค้า</th>
  <th>STOCK</th>
  <th>AP/PLAN</th>
  <th>รายการ</th>
<?php

แต่ของเก่าฝ่านไปก็ได้ ไม่จำเป็นต้องแก้มันใช้ ของใหม่ค่อยๆ หัดเขียนให้กระชับ จะทำงานเร็วขึ้น

ส่วนผลรวม หมายถีง
หมายถีง เอารับ + stock คงเหลือ หรือเปล่า

ให้สร้าง buffer เพื่อเก็บข้อมูล ที่บันทัดนี้
Code (PHP)
	$buffer [];
	for($day=1;$day<=$lastDay;$day++){ 
           $buffer[$day]=(object)['rcv'=>0, 'stk'=>0];
	?><th><?=substr(100+$day, 1)?></th>
        <?php } 
?>
		</tr>
		<tr><td><?=$empCode?></td><td><?=$nameC?></td><td><?=$stock?></td><td><?=$ap?></td>รับ</td>


และในส่วนของการใส่ค่า
Code (PHP)
 // loop ของการรับ
	for($j=1;$j<=$lastDay;$j++){
		if( isset($array_in[$empCode][$j]) ){
			$rcv=$array_in[$empCode][$j];
			$buffer[$j]->rcv+=$rcv;
			?><div><?=$rcv?></div><?php
		}
	}


ส่วนค่าของ stock ก็ไปทำใน loop ของ stock
ส่วนจะเอาค่าที่ได้ไปทำอะไรก็ตามสดวก


ประวัติการแก้ไข
2022-10-12 10:13:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 10:11:28 By : Chaidhanan
 


 

No. 19



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

ดูจากลักษณะตารางคงต้องสร้างตัวแปรอาร์เรย์ไว้ก่อน แล้วเก็บค่าในการ รับ-จ่าย มาคำนวณจะง่ายกว่า query แล้ว sum นะครับ


total = ยกมา + รับ - จ่าย

total = $array['balance'][ วัน - 1] + $array_in[$empCode][$j] - $array_out[$empCode][$j]
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 10:20:13 By : {Cyberman}
 


 
ตอบความคิดเห็นที่ : 18 เขียนโดย : Chaidhanan เมื่อวันที่ 2022-10-12 10:11:28
รายละเอียดของการตอบ ::
ขอบคุณพี่ๆทุก
คนที่ช่วยนะครับ ผมจะลองเอาไปทำดู ผมก็ไปเอาตัวอย่างคนอื่นมาแปรงใส่ตัวเอง ถ้าได้ยังไงจะมาอัพเดทนะครับ ขอบคุณมากครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:04:06 By : Orikano
 


 
ตอบความคิดเห็นที่ : 19 เขียนโดย : {Cyberman} เมื่อวันที่ 2022-10-12 10:20:13
รายละเอียดของการตอบ ::
ขอบคุณมากครับจะลองเอาไปทำดู ทำไม่ได้มาหลายวันละ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:05:05 By : Orikano
 


 
ตอบความคิดเห็นที่ : 18 เขียนโดย : Chaidhanan เมื่อวันที่ 2022-10-12 10:11:28
รายละเอียดของการตอบ ::
ใช่ครับเอารับมา +กับ stock

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:07:17 By : Orikano
 


 
ตอบความคิดเห็นที่ : 17 เขียนโดย : Orikano เมื่อวันที่ 2022-10-12 06:27:43
รายละเอียดของการตอบ ::
ที่บ้านมีงานบวช เสียงดังมาก งานผมไม่เดิน เลยมีเวลาดูให้
...แต่คงลักษณะการเขียนเดิมไว้ ไม่ได้ปัดขยะให้
ยังไง ดูคำแนะนำของทั้งสองท่านเอานะครับ


Code (PHP)
<!DOCTYPE html>
 <html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
 </head>
 <body>
 
 <?php
// เปิดแสดง error (production อย่าลืมเอาออก)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
 
 // ======== Sample Data (ข้อมูลตัวอย่าง จำลองขึ้นแทน DB เพื่อความสะดวก) =======
 
 $pOut = [
    ["out_p_id"=>"3063800-0091", "out_date"=>7, "out_p_name"=>"NH-303M", "out_total"=>17, "stocktotal"=>83, "aptotal"=>83],
    ["out_p_id"=>"3063800-0091", "out_date"=>8, "out_p_name"=>"NH-303M", "out_total"=>10, "stocktotal"=>73, "aptotal"=>73],
    ["out_p_id"=>"3063800-0091", "out_date"=>9, "out_p_name"=>"NH-303M", "out_total"=>9, "stocktotal"=>64, "aptotal"=>64],
    ["out_p_id"=>"3063800-0091", "out_date"=>10, "out_p_name"=>"NH-303M", "out_total"=>10, "stocktotal"=>54, "aptotal"=>54],
    ["out_p_id"=>"3063800-0195", "out_date"=>7, "out_p_name"=>"NH-1", "out_total"=>14, "stocktotal"=>66, "aptotal"=>66],
    ["out_p_id"=>"3063800-0195", "out_date"=>8, "out_p_name"=>"NH-1", "out_total"=>2, "stocktotal"=>64, "aptotal"=>64],
    ["out_p_id"=>"3063800-0195", "out_date"=>9, "out_p_name"=>"NH-1", "out_total"=>13, "stocktotal"=>51, "aptotal"=>51],
    ["out_p_id"=>"3063800-0195", "out_date"=>10, "out_p_name"=>"NH-1", "out_total"=>6, "stocktotal"=>45, "aptotal"=>45],
    ["out_p_id"=>"3064000-0010", "out_date"=>7, "out_p_name"=>"HISOLID", "out_total"=>16, "stocktotal"=>74, "aptotal"=>74],
    ["out_p_id"=>"3064000-0010", "out_date"=>8, "out_p_name"=>"HISOLID", "out_total"=>9, "stocktotal"=>65, "aptotal"=>65],
    ["out_p_id"=>"3064000-0010", "out_date"=>9, "out_p_name"=>"HISOLID", "out_total"=>9, "stocktotal"=>56, "aptotal"=>56],
    ["out_p_id"=>"3064000-0010", "out_date"=>10, "out_p_name"=>"HISOLID", "out_total"=>6, "stocktotal"=>50, "aptotal"=>50]
 ];

$prod = [
    ["id"=>1, "id_name"=>"3063800-0091", "name"=>"NH-303M", "stockmonth"=>100, "applan"=>100],
    ["id"=>3, "id_name"=>"3063800-0195", "name"=>"NH-1", "stockmonth"=>80, "applan"=>80],
    ["id"=>2, "id_name"=>"3064000-0010", "name"=>"HISOLID", "stockmonth"=>90, "applan"=>90]
];

$pIn = [
    ["id_c"=>"3063800-0091", "date_c"=>10, "total_c"=>10],
    ["id_c"=>"3063800-0195", "date_c"=>10, "total_c"=>20],
    ["id_c"=>"3064000-0010", "date_c"=>10, "total_c"=>30]
];


   foreach($pOut as $o){
     $report[$o['out_p_id']][$o['out_date']] = $o['out_total'];
     $report2[$o['out_p_id']][$o['out_date']] = $o['stocktotal'];
     $report3[$o['out_p_id']][$o['out_date']] = $o['aptotal'];
   } 
       
 
   foreach($prod as $p){
     $emid[$p['id_name']] = array ('namecode'=> $p['name'],'stock'=>$p['stockmonth'],'ap'=>$p['applan']);
   }  
       
   foreach($pIn as $in){
     $array_in[$in['id_c']][$in['date_c']] = $in['total_c'];           
   }
   

// ====================================================


echo "<table border=1>";

foreach($emid as $empCode=>$array){
	$nameC = $array['namecode'];
	$stock = $array['stock'];
    
    /**** 1. เก็บค่าสุดท้ายของ "รับ และ stock" ****/
    // income
	$ap = $array['ap'];
    $x = $array_in[$empCode];
    $y = array_keys($x);
    $z = $y[count($y)-1];
    $income = (int)$x[$z];
    
    // stock
	$ap = $array['ap'];
    $x = $report3[$empCode];
    $y = array_keys($x);
    $z = $y[count($y)-1];
    $stock = (int)$x[$z];
    /*****************************/
	
	echo '<tr>';
	echo '<th>รหัสสินค้า</th>';
	echo '<th>ชื่อสินค้า</th>';
	echo '<th>STOCK</th>';
	echo '<th>AP/PLAN</th>';
	echo '<th>รายการ</th>';
	$year ="2022";
	$month="10";
	$timeDate = strtotime($year.'-'.$month."-01");
	$lastDay = date("t", $timeDate);

	for($day=1;$day<=$lastDay;$day++){
		echo '<th>' . substr("0".$day, -02) . '</th>' ;
	}
	echo "</tr>" ;
	
	echo '<tr>' ;
	echo '<td>' . $empCode .'</td>';
	echo '<td>' . $nameC .'</td>';
	echo '<td>' . $stock .'</td>';
	echo '<td>' . $ap .'</td>';
	echo '<td>' . 'รับ' .'</td>';
	
	for($j=1;$j<=$lastDay;$j++){
		$r4=isset($array_in[$empCode][$j]) ? '<div>' .$array_in[$empCode][$j].'</div>' : '' ;
		echo "<td class='number'>" , $r4, "</td>" ;
	}
	echo "</tr>" ;
	
	echo '<tr>' ;
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . 'จ่าย' .'</td>';
	
	for($j=1;$j<=$lastDay;$j++){
		$rr=isset($report[$empCode][$j]) ? '<div>' .$report[$empCode][$j].'</div>' : '' ;
		echo "<td class='number'>" , $rr, "</td>" ;
	}
	echo "</tr>" ;
	
	echo '<tr>' ;
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . 'AP/PLAN คงเหลือ' .'</td>';
	
	for($j=1;$j<=$lastDay;$j++){
		$rr2=isset($report2[$empCode][$j]) ? '<div>' .$report2[$empCode][$j].'</div>' : '' ;
		echo "<td class='number'>" , $rr2, "</td>" ;
	}
	echo "</tr>" ;
	
	echo '<tr>' ;
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . '' .'</td>';
	echo '<td>' . 'STOCK คงเหลือ' .'</td>';
	
	for($j=1;$j<=$lastDay;$j++){
		$rr3=isset($report3[$empCode][$j]) ? '<div>' .$report3[$empCode][$j].'</div>' : '' ;
		echo "<td class='number'>" , $rr3, "</td>" ;
	}
	echo "</tr>" ;
    
    /**** 2. ผลรวม (วางส่วนไหนก็ได้) ****/
    echo '<tr>' ;
	echo '<td colspan="36" align="center">' .'รวม ' . ($income + $stock) . '</td>' ;
	echo '</tr>' ;
    /*****************************/
	
	echo '<tr>' ;
	echo '<td colspan="36" align="center">' .'-----------------'. '</td>' ;
	echo '</tr>' ;
}

echo "</table>" ;
  
  ?>
 </body>
 </html>



result
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:38:02 By : 009
 


 
ตอบความคิดเห็นที่ : 23 เขียนโดย : 009 เมื่อวันที่ 2022-10-12 11:38:02
รายละเอียดของการตอบ ::
ตอนคัดลอกลืมลบ บรรทัดนี้

Code (PHP)
$ap = $array['ap'];


เก็บไว้อันเดียวพอ


ส่วนรายละเอียดอย่างอื่น ไปจัดการเอานะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:42:11 By : 009
 


 
ตอบความคิดเห็นที่ : 23 เขียนโดย : 009 เมื่อวันที่ 2022-10-12 11:38:02
รายละเอียดของการตอบ ::
ก่อนไป เจอ bug อักตัว

ตัวแปร $stock ผมตั้งซ้ำซ้อนกัน อย่าลืมเปลี่ยนด้วย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 11:53:17 By : 009
 


 
ตอบความคิดเห็นที่ : 18 เขียนโดย : Chaidhanan เมื่อวันที่ 2022-10-12 10:11:28
รายละเอียดของการตอบ ::
พี่ครับ มันบอกไอตัวแปร buffer [ ]; มันบอก cannot use [ ] for reading อะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 13:36:34 By : Orikano
 


 
ตอบความคิดเห็นที่ : 25 เขียนโดย : 009 เมื่อวันที่ 2022-10-12 11:53:17
รายละเอียดของการตอบ ::
ขอบคุณพี่จากใจเลยครับงานผม เสร็จสักทีขอบคุณจริงๆที่ช่วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2022-10-12 13:48:27 By : Orikano
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : พี่ๆ ช่วยด้วยครับ เรื่อง ลูปตาราง php array บวกกัน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่