• 05-01-2014, 21:14:44
    #1
    Arkadaşlar yapmak istediğim şu

    SELECT

    *

    FROM

    Personel

    WHERE

    Favori_Site = ‘a.com’

    AND (Personel.Isim = ‘Ahmet’ OR Personel.Isim = ‘Denizhan’)

    şimdi burada personel ismi Ahmet olanı bulursa Denizhan'ı kontrol etmiyor ama ben istiyorum ki varsa hem Ahmet olanları hem de Denizhan olanları getirsin.

    || ilki doğruysa sağındakilere bakmıyormuş | ilki doğruysa sağındakilere de bakıyormuş . Ama sql sorgusunda || veya | bunu kullandığımda hata veriyor.

    Nasıl bir yol izleyebilirim?
  • 05-01-2014, 23:28:46
    #2
    SELECT

    *

    FROM

    Personel

    WHERE

    Favori_Site = 'a.com'

    Personel.Isim IN ( 'Ahmet' ,'Denizhan')

    Ne demek istediğinizi tam anlayamadım ama aradığınız şöyle birşey mi?
  • 06-01-2014, 00:13:59
    #3
    Sorguyu toparlayalım öncelikle ;

    <?php
    
    mysql_query("SELECT * FROM Personel WHERE Favori_Site = 'a.com' and Personel.Isım = 'Ahmet' or Personel.Isım = 'Denizhan'");
    
    ?>
    Siz burada Personel tablosunun içerisinde Favori_Site alanında a.com isimli web sitesi değerlerine ait Personel ismi ahmet veya personel ismi denizhan olan kişinin bilgilerini sorguluyorsunuz. İkisinden birisi var ise eğer.

    Şöyle bir yol izleyelim o zaman

    $isim   = "Ahmet";
    
    $sorgu = mysql_query("SELECT * FROM Personel WHERE Favori_Site = 'a.com' and Personel.Isım = '".$isim."'");
    
    $row   = mysql_num_rows($sorgu);
    
    if($row > 0){
    
     echo 'Evet ahmet isimli bir personel var';
     // Ahmet isimli bir personel varmış devam edelim buradan o zaman denizhanı kontrol edelim şimdide..
    
     unset($isim);
     $isim = "Denizhan";
     $sorgu;
    
     $kontrol = mysql_num_rows($sorgu);
    
               if($kontrol > 0)[
    
                  echo 'Evet ahmeti bulduk denizhanda var';
    
               }else{
    
                  echo 'Ahmet var ama denizhanı bulamadım';
     
                }
     
    }else{
    
    echo 'Malesef ahmet isimli bir personel yok';
    
    }
    Ben mantığı anlatmaya çalıştım. if içerisinde if kullandım tabikide başka yollarıda vardır mutlaka. Bu şekilde bir çözüm üretebilirsiniz belirttiğim yol ile.
  • 06-01-2014, 00:22:41
    #4
    function sorgu($isim){
    	
    	$sorgu = mysql_query("SELECT * FROM Personel WHERE Favori_Site = 'a.com' and Personel.Isım = '".$isim."'");
    
    	return mysql_num_rows($sorgu);
    
    }
    
    $row = sorgu('Ahmet');
    $row2 = sorgu('Mehmet');
    
    if ($row > 0 AND $row2 > 0) {
    
    	// Her ikisi devar.
    
    } elseif ($row > 0 AND $row2 = 0) {
    
    	// Sadece Ahmet var.
    
    } elseif ($row = 0 AND $row2 > 0) {
    
    	// Sadece Mehmet var.
    
    } else {
    
    	// Hiçbiri yok.
    
    }
  • 06-01-2014, 00:28:12
    #5
    soulmy adlı üyeden alıntı: mesajı görüntüle
    function sorgu($isim){
    	
    	$sorgu = mysql_query("SELECT * FROM Personel WHERE Favori_Site = 'a.com' and Personel.Isım = '".$isim."'");
    
    	return mysql_num_rows($sorgu);
    
    }
    
    $row = sorgu('Ahmet');
    $row2 = sorgu('Mehmet');
    
    if ($row > 0 AND $row2 > 0) {
    
    	// Her ikisi devar.
    
    } elseif ($row > 0 AND $row2 = 0) {
    
    	// Sadece Ahmet var.
    
    } elseif ($row = 0 AND $row2 > 0) {
    
    	// Sadece Mehmet var.
    
    } else {
    
    	// Hiçbiri yok.
    
    }
    fonksiyon oluşturmuşsunuzda hocam $isim değişkenine dışarıdan verilecek paremetreyi koymamışsınız arkadaşa bunuda belirtirseniz iyi olur

    sorgu("isim");

    şeklindede fonksiyonu çalıştırıp dışarıdan paremetreni yollarsın.
  • 06-01-2014, 00:31:35
    #6
    BR9 adlı üyeden alıntı: mesajı görüntüle
    fonksiyon oluşturmuşsunuzda hocam $isim değişkenine dışarıdan verilecek paremetreyi koymamışsınız arkadaşa bunuda belirtirseniz iyi olur

    sorgu("isim");

    şeklindede fonksiyonu çalıştırıp dışarıdan paremetreni yollarsın.
    $row = sorgu('Ahmet');
    $row2 = sorgu('Mehmet');

    olarak belirtmiştim zaten
  • 06-01-2014, 00:34:47
    #7
    soulmy adlı üyeden alıntı: mesajı görüntüle
    $row = sorgu('Ahmet');
    $row2 = sorgu('Mehmet');

    olarak belirtmiştim zaten
    Değişkenleri row olarak belirtince mysql_num_rows diyip atladım o zaman sorun yok her iki sistemde arkadaşın sorununu giderecektir.
  • 06-01-2014, 14:53:17
    #8
    Arkadaşlar hepinize gösterdiğiniz ilgiden dolayı teşekkür ederim. Ama bütün cevaplarda if içinde if kullanılmış bunu yapabilirim ben tek sorguda bütün işlemi halledebilir miyim diye sormuştum.
  • 06-01-2014, 15:03:17
    #9
    Karaman adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar hepinize gösterdiğiniz ilgiden dolayı teşekkür ederim. Ama bütün cevaplarda if içinde if kullanılmış bunu yapabilirim ben tek sorguda bütün işlemi halledebilir miyim diye sormuştum.
    Tek sorguda halledebilirmiyim demediniz hocam. MYSQL de istediğiniz nekadar yapılabilir bilemiyeceğim. Sonuçta ve veya gibi komutlar ile önce ilkini ardından 2.cisini kontrol etmek if yerine 2 kere MYSQL sorgusu yazarakta çözüme ulaşabilirsiniz o zaman.