[英]php - get total of number of results in foreach
我有一個foreach循環,它將在我的數據庫中進行搜索。 我想獲取搜索返回的總行數。
目前,我有這個:
foreach ($stmt as $row) {
$search=$dbh->prepare("SELECT * FROM advertisement_clicks WHERE username=:username AND token=:token");
$search->bindParam(":username",$userdata['id']);
$search->bindParam(":token",$row['token']);
$search->execute();
echo $search->rowCount();
}
這將打印出來: 00001100
如何獲得它們的總結果? (在這種情況下為2)
更好的是,如何在foreach循環之外獲得總結果?
循環外的代碼是這樣的:
$stmt = $dbh->prepare("SELECT * FROM advertisements WHERE status='2' AND fixed='1' AND fixed_expire>:time AND membershipFilter='0'");
$stmt->bindParam(":time",time());
$stmt->execute();
$f=$stmt->rowCount();
您可以執行以下操作-
$count = 0 ;
foreach ($stmt as $row) {
$search=$dbh->prepare("SELECT * FROM advertisement_clicks WHERE username=:username AND token=:token");
$search->bindParam(":username",$userdata['id']);
$search->bindParam(":token",$row['token']);
$search->execute();
$count += $search->rowCount();
}
echo $count ;
用像htis這樣的變量來計數:
$total = 0;
foreach ($stmt as $row) {
$search=$dbh->prepare("SELECT * FROM advertisement_clicks WHERE username=:username AND token=:token");
$search->bindParam(":username",$userdata['id']);
$search->bindParam(":token",$row['token']);
$search->execute();
$total += $search->rowCount();
}
$total
將保存總值。
上述參與者都沒有真正理解他們編寫的代碼的含義:)
同樣,即使在這種特殊情況下,行號也不要太高,否則絕對不能將rowCount用於此目的。
$total = 0;
$query = "SELECT count(*) FROM advertisement_clicks
WHERE username=:username AND token=:token";
$search = $dbh->prepare($query);
$search->bindParam(":username", $userdata['id']);
$search->bindParam(":token", $row['token']);
foreach ($stmt as $row) {
$search->execute();
$total += $search->fetchColumn();
}
它必須是
另外,假設$ stmt是上一個查詢的結果,則大多數情況下,您可以使用GROUP BY運算符在其他查詢中獲得計數。 根本沒有這樣的額外循環
$x = 0;
foreach ($stmt as $row) {
$search=$dbh->prepare("SELECT * FROM advertisement_clicks WHERE username=:username AND token=:token");
$search->bindParam(":username",$userdata['id']);
$search->bindParam(":token",$row['token']);
$search->execute();
echo $search->rowCount();
$x++;
}
echo $x;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.