|
|
|
[มือใหม่ ] ต้องการเช็คค่าในตารางที่เหมือนกันและนำข้อมูลของทั้งสองแถวมารวมกัน PHP |
|
|
|
|
|
|
|
คือต้องการให้เช็คค่าที่ช่อง TargetName ถ้าแถวไหนเหมือนกันให้นำมารวมกันเป็นแถวเดียว และนำข้อมูลช่องที่เหลือมา + กัน
เช่น แถวที่ 1 กับ 3 มีค่าที่ช่อง TargetName ตรงกัน ก็จะนำช่องด้านหลังทั้งหมดที่ต่อจาก TargetName รวมกันของแต่ละแถว
Code (PHP)
<?php
include("lib/nusoap.php");
$client = new nusoap_client("Web Service",true);
$data = $client->call('DSR');
$mydata = json_decode($data["DSRResult"],true);
if (count($mydata) > 0)
{
?>
<table width="950" border="2" align="Center" background="wefit.jpg">
<tr>
<td align="Center" bgcolor="FF6600"><FONT color=White>BranchID </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>MonthNo </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>YearNo </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>TargetName </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>TargetUnits </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>ActualUnits </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>Percents </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>TodayUnits </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>UnitPar </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>PercentPar </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>Projection </FONT></td>
<td align="Center" bgcolor="FF6600"><FONT color=White>ProjectionPercent </FONT></td>
</tr>
<?php
foreach ($mydata as $result)
{
?>
<tr>
<td align="Center"><?php echo $result["BranchID"];?> </FONT></td>
<td align="Center"><?php echo $result["MonthNo"];?> </FONT></td>
<td align="Center"><?php echo $result["YearNo"];?> </FONT></td>
<td align="Center"><?php echo $result["TargetName"];?> </FONT></td>
<td align="Center"><?php echo number_format($result["TargetUnits"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["ActualUnits"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["Percents"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["TodayUnits"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["UnitPar"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["PercentPar"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["Projection"], 2, '.','');?></FONT></td>
<td align="Center"><?php echo number_format($result["ProjectionPercent"], 2, '.','');?></td>
</tr>
<?php
}
}
else
{
echo "Not found data!";
}
}
}
}
?>
Tag : PHP
|
|
|
|
|
|
Date :
2014-11-14 15:01:07 |
By :
aofficially |
View :
955 |
Reply :
10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าอธิบายไม่เคลีย ถามเพื่มได้นะครับ ยังมือใหม่อยู่อ่ะครับ
|
|
|
|
|
Date :
2014-11-14 15:02:32 |
By :
aofficially |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วถ้าเปลี่ยนเป็นเขียน sum มาจาก sql เลยล่ะครับ เช่น
Code (SQL)
SELECT TargetName, SUM(Percents) FROM tbl_xxxx GROUP BY TargetName
พอนำมาแสดงก็วนลูปแสดงได้เลย
|
|
|
|
|
Date :
2014-11-14 15:32:29 |
By :
WiTT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากลองแบบแก้จากโค้ดนี้อะครับ มันจะยากมั้ยครับ
|
|
|
|
|
Date :
2014-11-14 16:11:27 |
By :
aofficially |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็น่าจะทำได้ครับ แต่ก็คงต้องเก็บค่าที่ได้ไว้ก่อน แล้วค่อยแสดงผลทีหลัง
อาจจะเก็บเป็นค่าแบบ array แยก index ด้วย TargetName ที่ได้
เพราะดูตามตัวอย่าง TargetName ที่ได้ ชื่อเดียวกันมันไม่ได้เรียงต่อกันไปเลย มันจะสลับกันไปมา
ลองคิด ๆ แล้วก็เขียนดูครับ
หรือรอพี่เก่ง ๆ ในนี้แนะนำโค้ดอีกทีครับ
|
|
|
|
|
Date :
2014-11-14 16:28:57 |
By :
WiTT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ครับ เลียนแบบการทำงาน คล้ายมาย sql ตามที่คุณด้านบนบอก
ตย.
$rows = array(
array(
'TargetName' => 'abc',
'TargetUnits' => 10.55,
),
array(
'TargetName' => 'xyz',
'TargetUnits' => 2.50,
),
array(
'TargetName' => 'abc',
'TargetUnits' => 7.32,
),
);
$new_rows = array();
foreach ($rows as $row){
if (isset($new_rows[$row['TargetName']])){
// พบว่ามี อยู่ให้บวกค่า ฟีลอื่นๆ
$new_rows[$row['TargetName']]['TargetUnits'] += $row['TargetUnits'];
// ... ทำต่อไปทุกฟีลที่ต้องการรวมผล
}else{
// ไม่พบ ให้เพิ่มเข้าไป
$new_rows[$row['TargetName']] = $row;
}
}
echo '<pre>';
print_r($new_rows);
echo '</pre>';
result
Array
(
[abc] => Array
(
[TargetName] => abc
[TargetUnits] => 17.87
)
[xyz] => Array
(
[TargetName] => xyz
[TargetUnits] => 2.5
)
)
|
|
|
|
|
Date :
2014-11-14 17:18:08 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับพี่ๆ ขอบคุณมากนะครับสำหรับคำแนะนำ
|
|
|
|
|
Date :
2014-11-17 09:29:52 |
By :
aofficially |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
น่าจะเอานักสืบพันทิบ มาให้ "หน้าฮี" สักเล็กน้อยก็ยังดี (และจะไม่ลืมพระคุณ)
ขอร้อง จัดให้หน้าฮีหน่อยครับ
ขอบคุณครับ
ปล. ...
|
|
|
|
|
Date :
2014-11-17 11:51:52 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เหนือยเหลือเกิน "Source code ที่ไร้จินตนาการ" (เจอเมื่อวันก่อนก็เท่านี้เจอวันนี้มันก็เหมือนเดิม)
Code (C#)
private void recursive(DirectoryInfo folder)
{
folder.GetDirectories().ToList().ForEach(f => this.recursive(f));
folder.GetFiles().Where(f => (new string[] { "jpg", "png", "gif" }).Contains(f.Extension)).ToList().ForEach(f => f.MoveTo(string.Format(@"{0}\{1}\{2}", textBox1.Text, f.DirectoryName, f.Name)));
}
ปล. มันก็ยังกระจอกเหมือนเดิม (อันนี้พูดซ้ำโดยหน้าฮี)
และคิดด้วยว่า "กระจอกเหมือนเดิม"
|
ประวัติการแก้ไข 2014-11-17 11:55:57 2014-11-17 12:01:04
|
|
|
|
Date :
2014-11-17 11:54:02 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|