PHP显示具有条件的表中的行数

时间:2014-04-22 03:40:11

标签: php mysql

所以我有一个名为 posting_ads 的mysql表我想在网站上显示一个统计数据,即发布的广告数量。

还有两种类型的广告 type1 type2 这些广告位于同一个mysql表格的列中,名为 ad_type

所以问题是什么是最短的PHP代码来显示数字,例如:

第1类广告的数量= XXX(例如:500) 类型2广告的数量= XXX

XXX是广告(行)的数量

我确实有效的代码是......

<?php $result = mysql_query("select count(1) FROM posted_ads"); $row = mysql_fetch_array($result); $total = $row[0]; echo "Number of ads " . $total; ?>

但是,我想显示2个不同的统计数据,一个显示第1类广告的数量和第2类广告的数量。该表中有一列名为“ad_type”,其值为“type 1”或“type 2”

----我解决了---- 感谢你的帮助。但我现在已经明白了。我使用2位代码,每种广告类型对应一个代码如下:

<?php $result = mysql_query("select count(1) FROM posted_ads WHERE ad_type = 'type1';");
$row = mysql_fetch_array($result);
$total = $row[0];
echo "Number of type 1 ads" . $total; ?>


<?php $result = mysql_query("select count(1) FROM posted_ads WHERE ad_type = 'type2';");
$row = mysql_fetch_array($result);
$total = $row[0];
echo "Number of type 2 ads" . $total; ?>

2 个答案:

答案 0 :(得分:2)

这可能会有所帮助:

SELECT COUNT(*) FROM posted_ads GROUP BY ad_type

答案 1 :(得分:0)

你可以在你的结果上运行mysqli_num_rows,这会给你总数,如下所示。请注意,类型1进程和类型2进程是相同的,1只使用所有一行(您请求的代码更短),类型2更容易理解。

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysqli_select_db($link, DB_NAME) or die("Couldn't select database");

$Type1Total = mysqli_num_rows(mysqli_query($link, "SELECT `ad_type` FROM `posted_ads` WHERE `ad_type` = 'type1'"));

$Type2Query = "SELECT `ad_type` FROM `posted_ads` WHERE `ad_type` = 'type2'";
$Type2Result = mysqli_query($link, $Type2Query);
$Type2Total = mysqli_num_rows($Type2Result);

然后相应地输出总数

echo "number of type 1 ads = " . $Type1Total . "<br> " number of type 2 ads = " . $Type2Total;

有关该主题的更多阅读here