• 28-10-2021, 20:35:14
    #1
    Arkadaşlar merhaba,
    Öğrenci sınav sistemi yapmak istiyorum,
    4 adet tablom var, öğrenci, ders,soru ve sınav diye
    hepsinde veriler kayıtlı,
    sadece sınav anında update kısmında sorun yaşıyorum,
    sınav tablosundaki idlerden soruları ve dersleri çekiyorum, radio button ile soruları soruyorum,
    şıkları seçince kullanıcının seçtiği şık ve ilgili soru ve dersleri (öğrenci- ders ve soruları karşılaştırıp) cevap kısmını seçilen şıkkı yazdırabilmek istiyorum.
    belki kafamdakileri pek anlatamadım, örnek görüntü tablolarını ekliyorum, yardımlarınız için şimdiden tşkler.
    (foreach ile dizileri aşağıdaki gibi çekiyorum fakat 115 numaralı öğrencinin türkçe dersinin 3.sorusuna cevap şıkkını yazdıramıyorum
    3 = a
    4 = b
    5 = c
    )


  • 28-10-2021, 20:54:51
    #2
    $ogreci_cevap=$_POST['cevap];
    foreach sınav table as sınavTablosu{
        foreach ders_table as DersTablosu{
            foreach {
                foreach soru_table as soruTablosu{
                    if($ogrenci_cevap==sorutablosu->dogru_cevap){
                    echo "cevap doğru"
                    } else {
                        cevap yanlış
                        }
                }
            }
        }
    }
    mantıken böyle olması gerek

    ama iççier for each baya bi kasar bu nedenle soruların idlerini birleştirmek daha kolay gibi

    misal
    once bir değişken yaratalım
    $soru_id=[ders_id].[soru_id].[cevap_id] /// sorunun cevabınında olduğu id numarası
    ///
    post edilen sayfadaki soru idsi aşagıdaki gibi olsun
    a) [ders_id].[soru_id].[Şık_id] , b) [ders_id].[soru_id].[Şık_id] , c) [ders_id].[soru_id].[Şık_id] , d) [ders_id].[soru_id].[Şık_id] ,e) [ders_id].[soru_id].[Şık_id]


    bunun için soru tablosunda id yanına bir tane daha int değerli cevap id isimli bir kolon açmalısın örneğin 8 id li sorunun cevap idsi 843 olmalı (a=1,b=2,c=3d=4) olduğunu varsayarsak

    burada bastığı id yi tablodaki ilgili yerlerle karşılaştır. hem hızlı olur hemde basit bir kripto olur