2014-03-04 402 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

相关问题