2014-03-04 288 views
-1

以下代碼有效,但需要幾分鐘才能加載頁面。基本上,我正在查詢數據庫以查找任何即將發生的事件,併爲每個事件總計數量列。活動少於30次,平均每場活動30張門票。需要很長時間才能顯示的MySQL查詢

謝謝。

<?php 

$rowsquery="SELECT * 
FROM listings 
WHERE show_date > DATE_SUB(CURDATE(), INTERVAL 3 DAY) 
ORDER BY show_date"; 
$result=mysql_query($rowsquery); 

$num=mysql_numrows($result); 

mysql_close(); 

?> 


<?php 
$i=0; 
while ($i < $num) { 

$item_number=mysql_result($result,$i,"item_number"); 
$show_date=mysql_result($result,$i,"show_date"); 
$show_time=mysql_result($result,$i,"show_time"); 
$headline=mysql_result($result,$i,"headline"); 
$double_head=mysql_result($result,$i,"double_head"); 
$price=mysql_result($result,$i,"price"); 
$opening_stock=mysql_result($result,$i,"opening_stock"); 
$available_online=mysql_result($result,$i,"available_online"); 
$booking_fee=mysql_result($result,$i,"booking_fee"); 
$total_price=$price+$booking_fee; 

mysql_connect(localhost,$username,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$total = "SELECT SUM(i.quantity) as total_tickets 
FROM paypal_ipn_orders o, paypal_ipn_order_items i 
WHERE i.item_number = '$item_number' 
AND i.raw_log_id = o.raw_log_id 
AND o.payment_status != 'Refunded' 
ORDER BY UPPER(o.last_name)"; 
$sRow = mysql_fetch_array(mysql_query($total)); 
$totaltkts = $sRow['total_tickets']; 

mysql_close(); 
?> 
+0

有啥你的問題?你也應該顯示你的數據庫模式 – falinsky

+0

刪除'UPPER' .. so'ORDER BY(o.last_name)「;'你的結束在哪裏? –

+0

爲什麼你的mysql_connect(localhost,$ username,$ password); '低於你先前的查詢嗎?先連接,然後查詢。 –

回答

0

請確保您有在where子句中的所有字段在數據庫索引 - ITEM_NUMBER,raw_log_id,PAYMENT_STATUS

相關問題