Şimdi Ara

PHP Karmaşık Sorgu İşlemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
7
Cevap
0
Favori
725
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bir başvuru sistemi hazırlıyorum.

    Üç tablom var.

    1- Başvuruları aldığım tablo
    2- Değerlendireceklerin bulunduğu tablo
    3- Değerlendirme sonuç tablosu

    Kurallar şöyle;
    - Her bir başvuruyu üç kişi değerlendirecek. O kısmı yaptım.
    - Haliyle sonuç tablosunda her bir başvuru için üç ayrı değerlendiricinin değerlendirmesi olacak.

    İstediğim ve yapamadığım tam olarak şu;
    Diyelimki değerlendirici bir başvuru değerlendirdi. Değerlendireceği başvuruları listelediğim sayfada o değerlendirici için o kişinin başvuru görünmesin istiyorum.

    Resimde tablo yapısı mevcut.



     PHP Karmaşık Sorgu İşlemi







  • Başvuru tablosuna basvuru_degerlendiren diye bir sütun daha oluştur. Mesela benim ID'm 1. Bu sütuna benim ID mi kaydet.

    basvuru_degerlendiren = 1

    oldu diyelim. Senin de ID'n 2 olsun ve sende bu başvuruyu değerlendirdin. Eğer bu sütun boşsa UPDATE sorgusuyla direk güncelle ama eğer doluysa ,ID numarası olarak UPDATE ettir.

    basvuru_degerlendiren = 1,2 oldu.

    Bundan sonra bavuru_degerlendiren sütununu çağır ve virgülleri parçala ve diziye ata.

    dizi = ["1","2"]; olarak atandı. Sonra kişinin ID'si bu dizide varsa gösterme başvuruyu.

    Bu şekilde yapabilirsin diye umuyorum. Benim aklıma başka bir yöntem gelmedi şuan için. Umarım yardımcı olmuşumdur.
  • Çok teşekkür ederim. Burada ben sonucu eksik verdim. Başvuru sonuç tablosunda sadece değerlendiren bilgisini tutmuyorum. Aynı zaman da bir sütunda da sonucunu 0-1 (Hayır-Evet) şeklinde açıklamasıyla birlikte tutuyorum. O nedenle en makul yöntem ayrı bir tablo olması görülüyor.

    <?php
    $query = $db->read_query("
    SELECT *
    FROM conference2015
    WHERE id
    AND d_grup_id = '$login_grup_id'
    ORDER BY id DESC
    ") or die($db->sql_error());
    while($row = $db->sql_fetcharray($query)){
    ?>

    Bu en saf hali. Doğrudan conference2015 tablosunda kişinin yani personelin session olduğu grup_id'si '$login_grup_id' ile olan herkesi eşitleyip çekiyorum. Böylece personel kendi grubunda olan başvuru sahiplerini görüyor. Yapmak istediğim şey ise bu sorguya listeleyen kişi sonuc tablosuna bu başvuruyla ilgili (basvuru_id(başvurunun kendisi)-personel_id(kaydı yapan)) kayıt yapmışsa onu listeletmemek. Amacım tam olarak bu. Senin verdiğinde güzel açıkçası ama tabloda baska verilerde var malesef.




  • quote:

    Orijinalden alıntı: yusufbedirhan

    Çok teşekkür ederim. Burada ben sonucu eksik verdim. Başvuru sonuç tablosunda sadece değerlendiren bilgisini tutmuyorum. Aynı zaman da bir sütunda da sonucunu 0-1 (Hayır-Evet) şeklinde açıklamasıyla birlikte tutuyorum. O nedenle en makul yöntem ayrı bir tablo olması görülüyor.

    <?php
    $query = $db->read_query("
    SELECT *
    FROM conference2015
    WHERE id
    AND d_grup_id = '$login_grup_id'
    ORDER BY id DESC
    ") or die($db->sql_error());
    while($row = $db->sql_fetcharray($query)){
    ?>

    Bu en saf hali. Doğrudan conference2015 tablosunda kişinin yani personelin session olduğu grup_id'si '$login_grup_id' ile olan herkesi eşitleyip çekiyorum. Böylece personel kendi grubunda olan başvuru sahiplerini görüyor. Yapmak istediğim şey ise bu sorguya listeleyen kişi sonuc tablosuna bu başvuruyla ilgili (basvuru_id(başvurunun kendisi)-personel_id(kaydı yapan)) kayıt yapmışsa onu listeletmemek. Amacım tam olarak bu. Senin verdiğinde güzel açıkçası ama tabloda baska verilerde var malesef.





    Aslında cevabı vermişsin. Başka bir tablo açarak başvuruyu değerlendiren kişinin IDsini buraya kaydederek görünmemesini sağlayabilirsin. Sorgu bana garip geldi ben biraz eski kafalı bir PHP ciyim Sen sanırım framework kullanarak yada başka bir yöntemle yapıyorsun.




  • Evet basvuru_id si ve degerlendiren id sini başka tabloda tutuyorum.
    Bir başvuruyu üç kişi değerlendirecek. Haliyle bir kişi bir başvuruyu değerlendirince başvuruları listelerken ona değerlendirdiği başvuruyu göstermek istemiyorum.
    sonuc tablosunda bir basvuru için üç id olacağı için onu bir türlü ayıramadım.
  • Bu konuda yardım edecek kimse yok sanırım.
  • FROM basvuru c
    WHERE c.d_grup_id = '$login_grup_id' and c.id NOT in (SELECT sonuc_id from sonuc where personel_id in ($session_uid))
    ORDER BY c.id DESC

    Bununla çözdüm. Teşekkürler.

    Şununla da sonuç bastırdım.

    $queryy = mysql_query("SELECT SUM(degerlendirme) as toplam FROM sonuc
    where basvuru_id = $row[id]
    ");
    $rrow = mysql_fetch_array($queryy);

    Burada (değerlendirme) olan kısım her bir değerlendiricilerin sonuc tablosunda 1 ve 0 bastıkları field. Burada yaptığım işlem SUM ile toplama bir başvuruyu üç değerlendirin kişinin değerlendirmesini toplamak oldu.

    <?php if($rrow[toplam]=='0') echo "Reddedildi"; elseif($rrow[toplam]=='1') echo "<font color=\"red\">Reddedildi</font>"; elseif($rrow[toplam]=='2') echo "<font color=\"green\">Kabul Edildi</font>";elseif($rrow[toplam]=='3') echo "<font color=\"green\">Kabul Edildi</font>"; else echo "<font color=\"black\">Değerlendirilmedi</font>"; ?>

    Bu satırlada toplam 0 ise Reddedildi bas. Boş ise Değerlendirilmedi bas. 1 ise Reddedildi. 2 veya daha fazlaysa Kabul Edildi bas. Font olanlarda renklendirmeler.


    İyi çalışmalar.




  • Yapay Zeka’dan İlgili Konular
    sql sorgu
    5 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.