2017-02-27 67 views
-1

我有一個問題,我想創建一個函數來計算數據庫中的數據。但我希望從列中計算一些ID而不是所有行。PHP count some rows

我的代碼不工作:

function countMember() { 
    include("./config/config.php"); 
    $fetch_countMember = $fetch_countMember->prepare("SELECT * FROM `accounts`"); 
    $fetch_countMember->execute(); 
    while($fetch_countMember= $fetch_countMember->fetch()) { 
    if($fetch_countMember["member"] == 5 || $fetch_countMember["member"] == 6 || $fetch_countMember["member"] == 12 || $fetch_countMember["member"] == 13 || $fetch_countMember["member"] == 14 || $fetch_countMember["member"] == 15 || $fetch_countMember["member"] == 16 || $fetch_countMember["member"] == 17 || $fetch_countMember["member"] == 20 || $fetch_countMember["member"] == 21) 
     $c_member++; 
    } 
    return $c_member; 
} 
+1

你有沒有錯誤?對於計數部分,它將是最好的,如果你可以改變這樣的查詢:SELECT * FROM'accounts' WHERE member IN(...) –

回答

1

您需要使用PDO::exec()

優雅的方式來做到這一點:

$pdo = new PDO(....); 
$ids = [5,6,12,13,14,15,16,17,20,21]; 
$query = sprintf("SELECT * FROM accounts WHERE member IN (%s)", implode($ids, ',')); 
$count = $pdo->exec(); 
echo $count; 
+0

謝謝的傢伙,它的工作:) – ToExeCute

+0

@ToExeCute歡迎您! –