ต้องการแบ่งข้อมูลที่่ คิวรี่ มาจากฐานข้อมูลออกเปนคอลัมน์ๆ
อ่านคำถามเเล้ว งงๆครับ เเล้วก็คิดว่าน่าจะ query ข้อมูลผิดอยู่นะครับ เพระามันน่าจะ query แค่ครั้งเดียว
ประมาณว่า 'Select * from welding where year='$type group by year' แบบนี้นะครับ เดาเอานะครับ
Date :
2011-07-29 08:54:59
By :
grandraftz
จากโค้ดเดาว่า Table ของคุณคงเก็บข้อมูลที่มี ปี ซ้ำ ๆ กันแบบนี้
และคุณต้องการทำตารางรวบรวมข้อมูลในแต่ละปี แบบนี้
สิ่งที่คุณทำคือ หาปีทั้งหมดดูได้จากการ query ของคุณ
Code (PHP)
$Sql = mysql_query("select * from welding group by year");
มันทำให้คุณได้ปีที่มีทั้งหมดมา
ทีนี้มีข้อสงสัยว่า แล้ว idbrand ล่ะ คุณรุ้ได้ยังไงว่ามันมีกี่ brand เพราะในดค้ดไม่เห็นคุณหา idbrand ทั้งหมดที่มี เหมือนที่หาปีเลย ไม่แน่ใจว่าคุณเก็บข้อมูลไว้ยังไงเพราะโค้ดคุณ query ข้อมูลแค่ table เดียว ตอบข้อสงสัยด้วยนะคะ จะได้ช่วยกันคิดต่อ
ประวัติการแก้ไข 2011-07-29 10:21:23 2011-07-29 10:26:41 2011-07-29 10:28:37
Date :
2011-07-29 10:14:11
By :
ultrasiam
พยายามตอบกันเต็มที่เลย สู้ๆ ครับทุกคน
Date :
2011-07-29 10:24:23
By :
PlaKriM
ไม่รู้ว่าเค้ายังอยากได้หรือเปล่า แต่ไหน ๆ ก็ทำมาแล้วเอามาแปะไว้หน่อยละกัน
โค้ดนี้ยังไม่ได้กรองนะคะ คิดอะไรได้ก็ใส่ไป บางทีอาจมีวิธีที่ง่ายกว่านี้ค่ะ
Code (PHP)
$SqlYear = mysql_query("select year, sum(total) as sum_year from welding group by year");
$year = array();
$total_year= array();
echo "<table cellspacing=0>";
echo "<tr style='background:#EAEAEA;'><td colspan=2 >YEAR</td>";
while($objQuery = mysql_fetch_array($SqlYear))
{
array_push($year, $objQuery['year']);
array_push($total_year, $objQuery['sum_year']);
echo "<td>".$objQuery['year']."</td>";
}
echo "<td>TOTAL</td>";
echo "</tr>";
$SqlBrand=mysql_query("select idbrand from welding group by idbrand");
$idbrand = array();
while($objQuery = mysql_fetch_array($SqlBrand)){
$type = $objQuery['idbrand'];
array_push($idbrand, $type);
}
$NO = 1;
for($ib=0;$ib<count($idbrand);$ib++){
echo "<tr><td>".$NO."</td><td>".$idbrand[$ib]."</td>";
$sum_btand=0;
for($i=0;$i<count($year);$i++){
$SqlData = mysql_query("Select sum(total) as sum_total from welding where year='$year[$i]' and idbrand='$idbrand[$ib]'")or die(mysql_error());
$objData = mysql_fetch_array($SqlData);
$data=$objData['sum_total'];
$sum_btand=$sum_btand+$data;
if($data==""){$data="-";}
echo "<td>".$data."</td>";
}
echo "<td>".$sum_btand."</td>";
echo "</tr>";
$NO++;
}
$all_total=0;
echo "<tr style='background:#EAEAEA;'><td colspan=2>TOTAL</td>";
for($isum=0;$isum<count($total_year);$isum++){
echo "<td>".$total_year[$isum]."</td>";
$all_total=$all_total+$total_year[$isum];
}
echo "<td style='color:#FF0000;'>".$all_total."</td>";
echo "</tr>";
echo "</table>";
ได้เวลาเริ่มงานล่ะ เอาไว้ว่าง ๆ จะเข้ามาอธิบายอีกที
Date :
2011-07-29 12:09:24
By :
ultrasiam
Load balance : Server 02