我有8個不同的產品類別的數據庫下載。我如何簡化這個PHP的MySQL計數代碼並減少查詢?
pic, app, ebo, tem, des, cod, mus, cat
我想統計每個產品類別的客戶端總下載量和總下載量。 類別產品的最大每日下載限額爲3. 用戶登錄時應該看看剩餘下載量。 這裏是工作的代碼
$query = "SELECT COUNT(*) as sum FROM service_downloads where client_id like '$client'";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result))
{
echo "You have downloaded". $row['sum'] ." products.";
echo "<br />";
}
$query = "SELECT COUNT(*) as sum FROM service_downloads where client_id like '$client' and product like 'pic'";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result))
{
echo "". $row['sum'] ." downloaded pictures";
$leftovers = 3 - $row['sum'];
echo " $leftovers pictures remain for download";
echo "<br />";
}
$query = "SELECT COUNT(*) as sum FROM service_downloads where client_id like '$client' and product like 'app'";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result))
{
echo "". $row['sum'] ."downloaded applications";
$leftovers = 3 - $row['sum'];
echo " $leftovers applications remain for download.";
echo "<br />";
}
$query = "SELECT CO.... This procedure repeat eight times for different product category.
結果
You have downloaded 12 products.
3 downloaded pictures 0 pictures remain for download.
1 downloaded applications 2 applications remain for download.
3 downl.......
您可以使用'GROUP BY'讓每一個計數單個查詢中的單個類別。然後總和就是把所有這些加在一起,所以你真的不需要去查詢。 –
'SELECT product,count(1)AS sum FROM service_downloads GROUP BY product' –