Bir haberi birden çok bölümde göstermek

xcalibur
24-03-2009, 14:49   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
1 mesaj
Kayıt Tarihi:Kayıt: Mar 2009

Selam kardeşler, bir haber sitesi yapıyorum. Haber sitesinde haberlerin gösterildiği yerlere göre bölümlerim var. Haber eklerken eklenen haberi istenilen bölüme göre tek bir yerde veya birden çok yerde göstermek istiyorum.

veritabanında;

-id
-haber
-usthaber
-ortahaber
-althaber
-yanhaber
-kucukhaber

alanlarımı oluşturdum.

sorgumu da alttaki şekilde yaptım (bu sorgu bütün haber gösterimlerinde ortak kullanıcak bir sorgudur)

select * from haber WHERE usthaber ='1' AND ortahaber = '1' AND althaber = '1' AND yanhaber = '1' AND kucukhaber = '1' ORDER by id DESC LIMIT 0,5

haberlerin ilk bolum alanları 0 olarak kaydediliyor. Bu yukardaki sorguyu kullandığımda büyün bölümlerin 1 olmasını istiyor ve ben bir haberi sadece usthaber ve yanhaberde göstermek istediğimde

usthaber = 1
ortahaber = 0
althaber = 0
yanhaber = 1
kucukhaber = 0
olduğunda sorgu çalışmıyor.

Bu seferde AND yerine OR kullandım ama bu sefer de içinde 1 geçen bütün haberleri gösteriyor yani

usthaber = 1
ortahaber = 0
althaber = 0
yanhaber = 0
kucukhaber = 0

olduğu zaman althaberde haberleri gösterirken usthaber'i 1 olan haberi de gösteriyor.

Sorunu nasıl çözecem.

bgunduz1395
08-06-2012, 23:45   |  #2  
bgunduz1395 avatarı
Taze Üye
Teşekkür Sayısı: 0
17 mesaj
Kayıt Tarihi:Kayıt: Haz 2012

usthaber ve yanhaber haricindekileri farklı kombinasyonlarda olmama durumlarını while döngüsü kullanarak haberlerin id'lerini bir dizi değişkene atmalısın.
Daha sonra istediğin usthaber ve yanhaber true olma durumlarını sorgulayarak, içerisinde bu dizi değişkenleri if karar yapısıyla kontrol ettirebilir. Bunun haricindekileri bir değişkene aktararak yazdırabilirsin.

Anlatımına göre şuanlık bu mantığı kurgulayabildim, biraz uzun gibi görünüyor.