• 08-04-2016, 09:38:59
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar,

    Mysql tablomda sayfa_kategori adında bir alanım var. Burada sayfa kategori id'lerini 10,25,33,40, şeklinde tutuyorum. Şöyle birşey yapmak istiyorum. Örneğin 25 nolu id'yi get ile sorgulayıp böyle bir id varmı yokmu bakmalıyım. LIKE ile arattığımda çalışıyor fakat 2525 gibi bir veri olduğunda da buluyor. IN() ile yaptığımda sadece ilk baştaki id'yi yani 25 nolu id'yi bulabiliyorum. Bu konuda yardımınıza ihtiyacım var.

    Teşekkürler.
  • 08-04-2016, 10:13:47
    #2
    select ID From sayfa_kategori where ID='25'
    //Bu sorguyu bir değişkene atın örnek "kontrol"


    if (kontrol == NULL || kontrol == "") //
    else ///

    if'e girerse yok, else girerse var gibi bir olay
  • 08-04-2016, 10:14:20
    #3
    Where id=25 şeklinde denedjnizmi
  • 08-04-2016, 10:14:39
    #4
    Bu arada şu konuyu atlamışım bunu sql ortamındamı yapmak istediğiniz, benim yöntem bir program ile gerçekleşmektedir.
  • 08-04-2016, 10:18:43
    #5
    $sth = $pdo->prepare('SELECT * FROM tablo WHERE id=?');
    $sth->execute(array(6));
    $post = $sth->fetch();
    
    if (empty($post)) {
      echo 'Gönderi yok';
    } else {
      echo $post['baslik'];
    }
    PHP için böyle, farklı programlama dillerinde SQL sonucunu döndürdüğünüz değişkenin ne döndürdüğünü kontrol ederek verinin varlığını kontrol edebilirsiniz.
  • 08-04-2016, 10:46:47
    #6
    Aktifhosting adlı üyeden alıntı: mesajı görüntüle
    select ID From sayfa_kategori where ID='25'
    //Bu sorguyu bir değişkene atın örnek "kontrol"


    if (kontrol == NULL || kontrol == "") //
    else ///

    if'e girerse yok, else girerse var gibi bir olay
    SELECT ile veriyi seçmiyor. sayfa_kategori alanımda veriler tek değil 10,25,36, gibi sonu virgüllü biten veriler. Aşağıda örneğini yazıyorum. Örneğin ben 25 rakamını sorgulamak istiyorum.

    +--------+--------+
    | sayfa_kategori |
    +--------+--------+
    |10,25,65,62, |
    |98,62,25,36, |
    +--------+--------+

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 10:46:47 -->-> Daha önceki mesaj 10:37:03 --

    yidemir adlı üyeden alıntı: mesajı görüntüle
    $sth = $pdo->prepare('SELECT * FROM tablo WHERE id=?');
    $sth->execute(array(6));
    $post = $sth->fetch();
    
    if (empty($post)) {
      echo 'Gönderi yok';
    } else {
      echo $post['baslik'];
    }
    PHP için böyle, farklı programlama dillerinde SQL sonucunu döndürdüğünüz değişkenin ne döndürdüğünü kontrol ederek verinin varlığını kontrol edebilirsiniz.
    Cevap için teşekkürler. Sorgum aşağıdaki gibi. Verdiğiniz örnekteki execute içerisindeki array mantığını anlayamadım.

    +--------+--------+
    | sayfa_kategori |
    +--------+--------+
    |10,25,65,62, |
    |98,62,25,36, |
    +--------+--------+

    function kategoriyeAitSayfalar($id)
    {
    global $db;
    
    $sayfaKategoriListele = $db->prepare("SELECT * FROM panel_sayfalar WHERE sayfa_kategori=$id "); 
    $sayfaKategoriListele->execute();
    $sayfaKategoriListeleSonuc = $sayfaKategoriListele->get_result();
    
    return $sayfaKategoriListeleSonuc;
    
    }
  • 08-04-2016, 10:53:31
    #7
    LIKE ile sadece 25 i buldurabilirsin
    LIKE '25' yazarsan sadece 25 i bulur
    LIKE '%25%' yazarsan 2525 ide bulur
  • 08-04-2016, 10:55:18
    #8
    O zaman ID kolonunundaki değerleri split edip bir diziye atayın, daha sonra o dizi elemanlarında aradığınız değerin olup olmadığı kontrol edin.

    Bunu bir döngü ile yapabilirsiniz.
  • 08-04-2016, 11:02:52
    #9
    Aktifhosting adlı üyeden alıntı: mesajı görüntüle
    O zaman ID kolonunundaki değerleri split edip bir diziye atayın, daha sonra o dizi elemanlarında aradığınız değerin olup olmadığı kontrol edin.

    Bunu bir döngü ile yapabilirsiniz.
    Bu mantığı denedim aslında. İlk önce tüm sayfa_kategori altındaki verilerin virgüllerini preg_split temizleyip listeledim. Aradığım id değerini bulup bu id değeri array içerisinde varmı sonucunu true döndürebiliyorum. Fakat şurada takıldım. Bu dönen sorgunun hangi sütünda olduğunu görüp while döngüsü ile o sütünları listeletemedim.