v2.5.2
Giriş yap

PHP ile Veritabanından Tek Sorguyla Saydırma Nasıl Yapılır?

redline
523 defa görüntülendi

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

PHP

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?

Cevap yaz
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cevaplar (4)
abdullahx
774 gün önce
$stmt = $db->query("SELECT veri_kodu, COUNT(*) as adet FROM veriler GROUP BY veri_kodu");

$sonuclar = $stmt->fetchAll(PDO::FETCH_KEY_PAIR);
extract($sonuclar, EXTR_PREFIX_ALL, 'count');
print_r(get_defined_vars());

echo $count_1;
echo $count_2;
echo $count_3; 
PHP
th3ultra
774 gün önce

<?php
//Fonksiyon Oluşturuyoruz

function sorgu($kod) {

global $db;
$query1  = $db -> prepare("SELECT * FROM veriler WHERE veri_kodu = :kod");
$query1 -> execute(["kod" => $kod]);
$count1  = $query1 -> rowCount();

return $count1; 

}

//Kullanım:
echo sorgu(1); //Sonuç: 15
?>

Bu şekilde dener misin?

eminkurt
776 gün önce

$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


PHP

denemedim ama şunu bir deneyebilir misin

devepdogukan
776 gün önce

Bunu sql ile veri_kodu alanını gruplayarak halledebilirsin.

SELECT count(veri_kodu) as count,veri_kodu FROM veriler  
GROUP BY veri_kodu
SQL