hi all, i have some query like below, but when this query executed i get long respond, it takes about 1 minute for 25 data only. i think this script not working properly. $tampil = "SELECT Tanggal_Bayar_SPP,SUM(SPP),"; $tampil = $tampil."SUM(Infaq),"; $tampil = $tampil."SUM(Labor),"; $tampil = $tampil."SUM(Catering),"; $tampil = $tampil."SUM(Antar_Jemput),"; $tampil = $tampil."SUM(Buku_Paket) "; $tampil = $tampil."FROM view_rekap_spp_sdit where Bulan_Bayar = '$bulan' and Tahun_Bayar = '$tahun' and Flag = 'Aktif'"; $tampil = $tampil." GROUP BY Tanggal_Bayar_SPP asc"; $hasil = mysql_query($tampil) or die(mysql_error("")); //echo $data["SUM(SPP)"]; while ($data = mysql_fetch_array($hasil)) { $total_item = $data["SUM(SPP)"] + $data["SUM(Labor)"] + $data["SUM(Infaq)"] + $data["SUM(Catering)"] + $data["SUM(Antar_Jemput)"] + $data["SUM(Buku_Paket)"]; $total_spp = ($total_spp + $data["SUM(SPP)"]); $total_labkom = ($total_labkom + $data["SUM(Labor)"]); $total_infaq = ($total_infaq + $data["SUM(Infaq)"]); $total_catering = ($total_catering + $data["SUM(Catering)"]); $total_antarJmp = ($total_antarJmp + $data["SUM(Antar_Jemput)"]); $total_bukPaket = ($total_bukPaket + $data["SUM(Buku_Paket)"]); echo "<tr> <td align='center' height='20'>$no</td> <td align='center'>".$data["Tanggal_Bayar_SPP"]."</td> <td align='right'>".number_format($data['SUM(SPP)'],0,'','.')." </td> <td align='right'>".number_format($data['SUM(Labor)'],0,'','.')." </td> <td align='right'>".number_format($data['SUM(Infaq)'],0,'','.')." </td> <td align='right'>".number_format($data['SUM(Catering)'],0,'','.')." </td> <td align='right'>".number_format($data['SUM(Antar_Jemput)'],0,'','.')." </td> <td align='right'>".number_format($data['SUM(Buku_Paket)'],0,'','.')." </td> <td align='right'>".number_format($total_item,0,'','.')." </td> </tr>"; $no++; } PHP: is there something wrong with this script above, because i run it on my localhost. but it takes a long time to get the result in my echo. please show me the problem, if it's necessary give me a better another script, so i can solve this problem
you can use the mysql function FORMAT in your query instead of the php function number_format. It should reduce you total execution time. info on FORMAT: http://www.tutorialspoint.com/mysql/mysql-numeric-functions.htm#function_format You can also use mysql query caching to i,prove performace, so if nothing has changed it won't have to recalculate everything: info: http://www.petefreitag.com/item/390.cfm
Tell me how it goes : <?php $result = mysql_query("SELECT Tanggal_Bayar_SPP as tbs,SUM(SPP), as spp,SUM(Infaq) as infaq,SUM(Labor) as labor,SUM(Catering) as catering,SUM(Antar_Jemput) as antar,SUM(Buku_Paket) as buku FROM view_rekap_spp_sdit WHERE Bulan_Bayar = '".$bulan."' AND Tahun_Bayar = '".$tahun."' and Flag = 'Aktif' GROUP BY Tanggal_Bayar_SPP ASC") or die(mysql_error()); $no = 1; $total_spp = $total_labkom = $total_infaq = $total_catering = $total_antarJmp = $total_bukPaket = 0; while($row = mysql_fetch_array($result)) { $total_item = $row["spp"] + $row["labor"] + $row["infaq"] + $row["catering"] + $row["antar"] + $row["buku"]; $total_spp += $row["spp"]; $total_labkom += $row["labor"]; $total_infaq += $row["infaq"]; $total_catering += ($row["catering"]; $total_antarJmp += $row["antar"]; $total_bukPaket += $row["buku"]; echo ' <tr> <td align="center" height="20">'.$no.'</td> <td align="center">'.$row["Tanggal_Bayar_SPP"].'</td> <td align="right">'.number_format($row['spp'],0,'','.').' </td> <td align="right">'.number_format($row['labor'],0,'','.').' </td> <td align="right">'.number_format($row['infaq'],0,'','.').' </td> <td align="right">'.number_format($row['catering'],0,'','.').' </td> <td align="right">'.number_format($row['antar'],0,'','.').' </td> <td align="right">'.number_format($row['buku'],0,'','.').' </td> <td align="right">'.number_format($total_item,0,'','.').' </td> </tr>'; $no++; } ?> PHP: