v2.5.2
Giriş yap

Verileri Süzerek Toplama

asiyan27
257 defa görüntülendi

Elimde bir puanlar tablosu var. Sınıflar her kriter için farklı kişiler tarafından verilen puanlar şöyler
SINIF PUAN VEREN 1.Kriter 2.Kriter 3. Kriter
5A ALi 1 1 0
5B Ahmet 1 0 1
5A Veli 1 1 1
5C Veli 1 1 0
5B osman 1 1 1
Burada istediğim her sınıfın aldığı toplam puanı bulmak ve şöyle bir çıktı almak.
SINIF T_PUAN
5A 5
5B 5
5C 2

Bunun için kullandığım yöntem :

       <?php 

$sql=$db->query('SELECT DISTINCT sinif,soru1,soru2 FROM puanlama ORDER BY sinif ASC');

foreach($sql as $row)

{?> <tr>
<td><?php echo $row["sinif"];?></td>
<td><?php echo $row["soru1"]+$row["soru2"];?></td>
<?php }

        ?> </tr> 

ancak olmuyor...

Cevap yaz
Cevaplar (5)
ebykdrms
747 gün önce
<?php
$classes = [];
foreach($sql as $row) {
    if(!isset($classes[$row['sinif']])) $classes[$row['sinif']] = 0;
    $classes[$row['sinif']] += intval($row['soru1']) + intval($row['soru2']);
}
?>
<table>
    <thead>
        <th>
            <td>SINIF</td>
            <td>T_PUAN</td>
        </th>
    </thead>
    <tbody>
        <?php foreach($classes as $className => $totalPuan) { ?>
            <tr>
                <td><?=$className?></td>
                <td><?=$totalPuan?></td>
            </tr>
        <?php } ?>
    </tbody>
</table>
ebykdrms
746 gün önce

SQL sorgunuzdan DISTINCT ifadesini kaldırıp deneyebilirsiniz.

asiyan27
746 gün önce

Çözümü nasıl olabilir?

ebykdrms
746 gün önce

Teşekkürler yalnız bir sorun var. Puanları eksik hesaplıyor. Bazı öğretmenler bir sınıf iki puan verdikleri için birini geçersiz sayıyor.

SQL sorgunuzda DISTINCT sinif dediğiniz için veritabanından aynı sınıf sadece 1 kez dönüyor olabilir.

asiyan27
747 gün önce

Teşekkürler yalnız bir sorun var. Puanları eksik hesaplıyor. Bazı öğretmenler bir sınıf iki puan verdikleri için birini geçersiz sayıyor.