สอบถามผู้รู้ครับว่าในกรณีที่ต้องการ Select ข้อมูลน้ำหนักต่อวันเป็นจำนวน 365 วัน ต้องเขียน code ยังไงให้สั้นและทำงานเร็ว
นี่คือหน้าจอการทำงานครับ
Date :
2013-05-31 11:37:26
By :
TotEcom
ขอบคุณมากครับ คิดไม่ถึงเลย
Date :
2013-05-31 15:06:09
By :
TotEcom
ใช้กับ วันที่ได้ด้วยหรอครับ ผมไม่แน่ใจเพราะว่า Format Date ของผมเป็น yyyy-MM-dd ครับ แล้ววันที่ก๊เก็บแบบ 01 02 03 04...และสมมุติว่าเดือนเปลี่ยนเราจะ Code ยังไง
ขอตัวอย่างหน่อยนะครับ ขอคุณล่วงหน้าครับ
Date :
2013-05-31 15:57:30
By :
TotEcom
ใช้ sprintf ช่วยครับ
Date :
2013-05-31 18:16:34
By :
itpcc
เก็บข้อมูลในอาร์เรย์ แล้วมาวนลูปแสดงครับ ลดการคิวรี่หลายครั้ง
Code (SQL)
SELECT * FROM tb_report WHERE report_date BETWEEN '2013-01-01' AND '2013-12-31'
เก็บในรูปแบบ array[month][location][type]
$data = array(
'01' => array(
'BKI' => array('SENT' => array('01','22','29') , 'RECEIVE' => array('02', '07', '12', 30')),
'BBI' => array('SENT' => array('01','14','29') , 'RECEIVE' => array('02', '07', '12', 17'))
),
'02' => array(
'BKI' => array('SENT' => array('01','22','29') , 'RECEIVE' => array('02', '07', '12', 19'))
)
)
Date :
2013-05-31 19:01:00
By :
{Cyberman}
เขียนการ วน Loop Array วันที่ให้ดูเป็นตัวอย่างหน่อยครับ คุณ Cyberman
Date :
2013-06-01 11:29:40
By :
TotEcom
ประมาณนี้ครับ
foreach($data as $month=>$arrBransh){//วนลูปเดือน 1-12
foreach($arrBranshas $type=>$arrDay){//วนลูป BKI, BBI, etc...
for($d=1;$d<31;$d++){//วนลูปตามจำนวนวันในเดือน ตัวอย่างนี้กำหนดตายตัว เพราะหัวตารางคงจะเป็น 1-31
$data = isset($arrDay[$i]) ? $arrDay[$i] : 0;//ถ้ามีข้อมูลก็แสดงออกมา ถ้าไม่มีแสดง 0
echo '<td>', $data, '</td>';
}
}
}
ปล. แก้อาร์เรย์ชุดสุดท้ายที่เก็บแต่วันที่อย่างเดียว เป็นเก็บค่าในวันที่ด้วย
Code (PHP)
array(
'SENT' => array('01'=>18.72, '22'=>12.34, '29'=>22.33) ,
'RECEIVE' => array('02'=>50.22, '07'=>11.22, '12'=>22.67)
)
Date :
2013-06-01 12:34:21
By :
{Cyberman}
ขอบคุณครับผมจะลองไปเขียนดูครับ ขอบคุณมากที่แนะนำครับ
Date :
2013-06-01 16:09:16
By :
TotEcom
ข้อมูลการ Search เป็นลักษณะมีเงื่อนไปแบบนี้ครับ
$strSQL = "SELECT Rec_DateReceive, Remain, Rec_Sup, SUM( Rec_TotalWeight ) AS TotalWigwht
FROM recevie_grinding
WHERE Rec_Sup ='TTT'
AND Rec_DateReceive
BETWEEN '2013-08-01'
AND '2013-08-31'
GROUP BY Rec_Sup";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$datay=array();
while($rs = mysql_fetch_array($objQuery))
{
$TotalWigwht = $rs["TotalWigwht"];
$ReceiveAug=($TotalWigwht/1000);
}
Date :
2013-06-10 11:57:51
By :
TotEcom
Load balance : Server 03