PHP ile Veritabanından Tek Sorguyla Saydırma Nasıl Yapılır?
Merhaba PT.
$query1 = $db -> prepare("SELECT * FROM veriler WHERE veri_kodu = :kod");
$query1 -> execute(["kod" => 1]);
$count1 = $query1 -> rowCount();
echo $count1; // Sonuç: 15
$query2 = $db -> prepare("SELECT * FROM veriler WHERE veri_kodu = :kod");
$query2 -> execute(["kod" => 2]);
$count2 = $query2 -> rowCount();
echo $count2; // Sonuç: 4
$query3 = $db -> prepare("SELECT * FROM veriler WHERE veri_kodu = :kod");
$query3 -> execute(["kod" => 3]);
$count3 = $query3 -> rowCount();
echo $count3; // Sonuç: 28
Yukarıda yapmak istediğim veritabanında veri_kodu
satırında bulunan değere göre saydırma işlemi yapıyorum. Bunu her değer için ayrı ayrı sorgu değil de, tek sorguda çıktı sayılarını değişken olarak alabilir miyim?
$query = $db->query("
SELECT
SUM(CASE WHEN veri_kodu = 1 THEN 1 ELSE 0 END) AS count1,
SUM(CASE WHEN veri_kodu = 2 THEN 1 ELSE 0 END) AS count2,
SUM(CASE WHEN veri_kodu = 3 THEN 1 ELSE 0 END) AS count3
FROM veriler
");
$row = $query->fetch(PDO::FETCH_ASSOC);
echo $row['count1']; // Result: 15
echo $row['count2']; // Result: 4
echo $row['count3']; // Result: 28
denemedim ama şunu bir deneyebilir misin