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?
Sql Sorgusu Sorunu
8
●535
- 06-01-2014, 00:13:59Sorguyu 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
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:12fonksiyon oluşturmuşsunuzda hocam $isim değişkenine dışarıdan verilecek paremetreyi koymamışsınız arkadaşa bunuda belirtirseniz iyi olursoulmy adlı üyeden alıntı: mesajı görüntüle
sorgu("isim");
şeklindede fonksiyonu çalıştırıp dışarıdan paremetreni yollarsın. - 06-01-2014, 00:31:35$row = sorgu('Ahmet');BR9 adlı üyeden alıntı: mesajı görüntüle
$row2 = sorgu('Mehmet');
olarak belirtmiştim zaten
- 06-01-2014, 00:34:47Değişkenleri row olarak belirtince mysql_num_rows diyip atladım o zaman sorun yok her iki sistemde arkadaşın sorununu giderecektir.soulmy adlı üyeden alıntı: mesajı görüntüle
- 06-01-2014, 15:03:17Tek 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.Karaman adlı üyeden alıntı: mesajı görüntüle