Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
774
Tıklama
0
Öne Çıkarma
PHP Karmaşık Sorgu İşlemi
Y
10 yıl (32 mesaj)
Onbaşı
Konu Sahibi

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.



< Resime gitmek için tıklayın >

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



T
10 yıl (886 mesaj)
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
Y
10 yıl (32 mesaj)
Onbaşı
Konu Sahibi

Ç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.


Bu mesaja 1 cevap geldi.
T
10 yıl (886 mesaj)
Yüzbaşı

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.


Bu mesaja 1 cevap geldi.
Y
10 yıl (32 mesaj)
Onbaşı
Konu Sahibi

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 mesaja 1 cevap geldi.
Y
10 yıl (32 mesaj)
Onbaşı
Konu Sahibi

Bu konuda yardım edecek kimse yok sanırım.


Bu mesaja 1 cevap geldi.
Y
10 yıl (32 mesaj)
Onbaşı
Konu Sahibi

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.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.