v2.5.2
Giriş yap

SQL sorgu yardım

pcmemo
853 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.


Cevap yaz
Cevaplar (4)
pcmemo
1767 gün önce

@buraksuluk örneğe gerek kalmadı hallettim tekrar teşekkür ederim.

pcmemo
1767 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ü?

buraksuluk
1767 gün önce

yada FIND_IN_SET ilede kullanabilirsin

buraksuluk
1767 gün önce

<?php

      $sorgu = $db->prepare("SELECT * FROM tbl_anket_katilim WHERE Done LIKE 0");
      $sorgu->execute();
      while($row=$sorgu->fetch(PDO::FETCH_ASSOC)) {
      $kontrol=$row['PollUsers'];
      $arr = explode (",",$kontrol);
      $kullanci=$_SESSION['UserID'];
      if (in_array($kullanci, $arr)) {
       echo "kullanici id var";
      }
      }
      ?>