2015-10-14 67 views
0

我需要一個查詢優化下面的代碼:PHP:選擇從MySQL多計數(ID)作爲一個查詢

 $query = 'select count(id) as featured_ads from #___properties WHERE featured = 1 and approved =1'; 
    $db->setQuery($query); 
    $featured_ads = intval($db->loadResult()); 


    $query = 'select count(id) as wait_ads from #___properties WHERE approved =0 and canceled<>"1" '; 
    $db->setQuery($query); 
    $wait_ads = intval($db->loadResult()); 


    $query = 'select count(id) as total_users from #__sresuad WHERE gid = 18 '; 
    $db->setQuery($query); 
    $total_users = intval($db->loadResult()); 

我該怎麼辦?

+0

那麼你到目前爲止嘗試過什麼?您可能還想考慮使用Joomla API來查詢和轉義您目前沒有執行的值 – Lodder

回答

1

你想要在一個查詢中返回所有計數嗎?解決這個問題的簡單的方式就是把所有的SELECT查詢定義的外場選擇:

SELECT 
    (select count(id) from #___properties WHERE featured = 1 and approved =1) AS featured_ads, 
    (select count(id) from #___properties WHERE approved =0 and canceled<>"1") AS wait_ads, 
    (select count(id) from #__sresuad WHERE gid = 18) AS total_users 

正如在他的評論中所建議的Lodder,由專人編寫SQL查詢很容易出現錯誤和安全漏洞,所以你如果可能的話可能想避免它。