v2.5.2
Giriş yap

SQL sorgu yardım

pcmemo
842 defa görüntülendi

Merhaba,
aşağıdaki gibi bir sorgum var

$sorgu = $db->prepare("SELECT * FROM tbl_anket_katilim WHERE Done LIKE 0");
$sorgu->execute();

WHERE bölümüne nasıl bir şey eklemeliyim ki tbl_anket_katilim tablosunda PollUsers sütununda virgüllerle ayrılmış olarak bulunan bir çok UserID içinde benim 1 olan ($_SESSION['UserID']) UserID'im varsa o satırı listelesin. O satırın PollUsers sütünunda benim UserID'im yoksa listelemesin.


pcmemo
1737 gün önce

Cevap için teşekkür ederim. Soruyu yazdıktan 10 dk sonra senin yazdığın gibi bir çözüm aklıam geldi ve uyguladım. Çalışıyor.

<?php 
if ($say != 0) {
$sorgu = $db->prepare("SELECT * FROM tbl_anket_katilim INNER JOIN tbl_anket ON tbl_anket.Poll_ID = tbl_anket_katilim.Poll_ID WHERE Done LIKE 0");
$sorgu->execute();

foreach ($sorgu as $row) { 
$PollUsers = explode(',', $row['PollUsers']); if (in_array($_SESSION['UserID'], $PollUsers)) { echo "Katılmanız gereken anket başlığı: ".$row['Poll_Title_Tr']."<br>"; } } ?>  

Fakat ben daha sorgu aşamasında iken bunu yapabilmek istiyorum.

$sorgusay = $db->prepare("SELECT COUNT(*) FROM tbl_anket_katilim WHERE Done LIKE 0");
$sorgusay->execute();
$say = $sorgusay->fetchColumn();

Yukarıdaki örnekteki gibi saydırıp $say sıfırna eşit değilse bu uyarıyı gösterecek pencereyi gösterip. Satırları içinde bastırıcam.

FIND_IN_SET için benim kodlarımla bir örnek oluşturman mümkün mü?