ช่วยเรื่อง array หน่อยครับ ในphp ขอบคุณครับช่วยทีครับ มือใหม่สุดๆ
อันนี้โค้ดครับ
<?php
$year ="2022";
$month="10";
$con=mysqli_connect("localhost","root","","dbproduct");
$reportname = array();
$report = array();
$sql = "SELECT day(`out_date`) as `out_date`, SUM(`out_total`)as`out_total` ,MIN(`stocktotal`)as`stocktotal`
FROM product_out WHERE `out_date` LIKE'2022-10%' GROUP BY `out_p_id` ,`out_date` ORDER BY `out_date` ASC";
$result = mysqli_query($con , $sql) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '. mysqli_error());
$timeDate = strtotime($year.'-'.$month."-01");
$lastDay = date("t", $timeDate);
?>
<!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>";
echo '<tr>';
for($day=1;$day<=$lastDay;$day++){
echo '<th>' . substr("0".$day, -02) . '</th>';
}
echo "</tr>";
while($row = mysqli_fetch_assoc($result)){
$report[$row['out_date']]= $row['out_total'] ;
$report2[$row['out_date']]= $row['stocktotal'] ;
echo '<tr>';
for($j=1;$j<=$lastDay;$j++){
$rr = isset($report[$j]) ? '<div>'.$report[$j].'</div>' : 0;
echo "<td class='number'>", $rr, "</td>";
}
echo "</tr>";
for($j=1;$j<=$lastDay;$j++){
$rr2 = isset($report2[$j]) ? '<div>'.$report2[$j].'</div>' : 0;
echo "<td class='number'>", $rr2, "</td>";
}
echo '</tr>';
}
mysqli_close($con);
echo "</table>";
?>
</body>
</html>
ผมพึ่งเริ่มทำ ก็ยินดีรับคำติครับ ผมอาจจะ งงๆก็ขอโทษด้วยครับ ขอบคุณพวกพี่ที่ช่วยครับ
ประวัติการแก้ไข 2022-10-08 14:58:48 2022-10-08 14:59:32
Date :
2022-10-08 14:51:08
By :
Orikano
ยังไม่เข้าใจความต้องการ เลย เอาโค๊ดมาดัดแปลง เป็นตัวอย่างการ จัดตัวแปร ในรูป array object
Code (PHP)
<?php
error_reporting(-1);
ini_set('display_errors', 1);
$year ="2022"; $month="10";
//$con=mysqli_connect("localhost","root","","dbproduct");
$con=new mysqli('localhost','user','paswd','database') or die($con->error);
if(!$con->error){
print_r($con->error);
}
$report = [];
/*
$sql = "SELECT
day(`out_date`) as `out_date`,
SUM(`out_total`)as `out_total` ,
MIN(`stocktotal`)as `stocktotal`
FROM product_out
WHERE `out_date` LIKE '2022-10%'
GROUP BY `out_p_id` ,`out_date`
ORDER BY `out_date` ASC";
*/
// โค๊ดเลียนแบบ สร้าง data สำหรับ การคิวรี่
$tmp = [];
for($i=0; $i<100; $i++){
$dd=substr(rand(101,131),1);
$dt=rand(100,200);
$st=rand(10,20);
$tmp[]="select '2022-10-{$dd}', '{$dt}' , '{$st}' ";
}
$imp = implode('
union ', $tmp);
$dd=substr(rand(101,131),1); $dt=rand(100,200); $st=rand(10,20);
$sql = <<<SQL
SELECT
day(`out_date`) as `out_date`,
SUM(`out_total`)as `out_total` ,
MIN(`stocktotal`)as `stocktotal`
FROM (
select '2022-10-{$dd}' out_date, '{$dt}' out_total, '{$st}' stocktotal
union {$imp}
) as tmp
GROUP BY `out_date`
ORDER BY `out_date` ASC
SQL;
$result = $con->query($sql) or die('ไม่สามารถเชื่อมต่อฐานข้อมูลได้ Error : '.$con->error);
//****************************************************
$tt= strtotime($year.'-'.$month.'-01');
$enDay = date('t', $tt);
for( $i=1; $i >= $enDay; $i++){
$report[]=[];
}
while( $row =$result->fetch_object()){
$report[$row->out_date - 1][]= $row;
}
?>
<pre><?=$sql?></pre>
<?php foreach( $report as $obj){ ?>
<?=json_encode($obj)?><br>
<?php }
ปล. ไม่ถนัด procedural ถนัด oop
Date :
2022-10-08 22:30:50
By :
Chaidhanan
Load balance : Server 05