İyi günler arkadaşlar bir sorum olacaktı, bilgisi olan cevaplayabilirse memnun olurum.
Haberler diye bir slider alanım var. Bu slider alanında 4 tane başlık gelecek bu başlıklara ait birden fazla resim var. Ama ben slider alanımda ise ilgili başlığa 1 resim gelmesini istiyorum. Mysql veritabanında 2 tane tablom var birinde haberle ilgili bilgiler diğerinde ise ilgili haberlere ait resimler var. Haber tablosu (HaberID, haberbaslik, haber, tarih vb.) Haberresim tablomda ise (HaberID, Resimyolu) idi. Sadece sorgulama ile ilgili başlıklara ait ilgili 1 resimi slider alanıma nasıl getirebilirim?
Yazmış oldugun koddan fazla birşey anlayamadım. Ben şöyle anlatayım.
Öncelikle 2 ayrı tablom var. haber , haberresim tablosu ikisindede ortak HaberID
resimde de görüldüğü üzere sol tarafta resim alanı sağ tarafta ise başlık ve içerik alanı var.
resimleri ayrı bir while döngüsünde döndürmek ve başlık ve içerikleri ayrı bir while döngüsünde döndürmek istiyorum.
bu nedenlede 2 ayrı sorgu oluşturmam lazım.
1. sorguda resimlerin oldugu haberresim tablosundan haber tablosunda ki tek bir başlık ve içeriğe ait birden fazla resim var. Ama ben sadece 1 tanesini göstermesini istiyorum.
2. sorguda ise haber tablosundan başlık ve içeriğin gelmesini istiyorum..
Tek bir sorguda halledebilinir mi , Aşağıda tabloda bulunan alanların isimleri yazıyor. Yardımcı olursanız sevinirim...
haber tablosunda HaberID, HaberBaslik, Haber(açıklama), HaberTarih, Yazar bulunmakta
Yazmış olduğum sql sorgusu istediğin gibi zaten tüm alanları birleştirmiş olarak getiriyor tek sorguda. Daha açıklayıcı yazayım çünkü cevabın zaten üstte yazdığım sorguda.
select * from Haber --> Öncelikle bu sorguyu düşün ne diyor; bana Haber tablosundaki tüm bilgileri getir. Buradaki bilgilerden hariç ihtiyacın olan tek şey farklı bir tabloda ki ama haberin id si ile eşleşen tek resmi çekmek değil mi? Onun içinde şu sorguya bakalım;
(select top 1 Resimyolu from Haberresim where HaberID=Haber.HaberID) as tekresim --> yani diyor ki bana Haberresim tablosundan 1 tane resmi getir Haberresim tablosundaki HaberID ile Haber tablosundaki HaberID si eşit olanı getir diyor. Yani ilgili haberin kendi resminden 1 tane getiriyor.
Şimdi bu sorguyu birleştirelim;
select *, (select top 1 Resimyolu from Haberresim where HaberID=Haber.HaberID) as tekresim from Haber
sen bu sorguyu çalıştırdığında karşına Haberlerin tüm kolonları en sağ kolonunda da normalde Haber tablon da olmayan tekresim başlıklı bir kolon gelecek burada da ilgili resmi alabileceksin. Haberleri çektiğin yere de istediğin kolon adını yazarak doldurabilirsin.
Sorguyu değişkene atayıp mysql_fetch_array fonksiyonu ile döndürüp print_r(); ile gelen değerlere bakayım dedim hata veriyor. tabloları ve tablodaki sutun isimlerini kontrol ettim ama hatayı yine verdi. kod Aşagıda
$resimhaber=mysql_query("SELECT *,(SELECT TOP 1 ResimYolu from haberresim where HaberID=haber.HaberID) as tekresim from haber ");
Haberler diye bir slider alanım var. Bu slider alanında 4 tane başlık gelecek bu
başlıklara ait birden fazla resim var. Ama ben slider alanımda ise ilgili
başlığa 1 resim gelmesini istiyorum.
Mysql veritabanında 2 tane tablom var birinde haberle ilgili bilgiler diğerinde
ise ilgili haberlere ait resimler var. Haber tablosu (HaberID, haberbaslik, haber, tarih vb.) Haberresim tablomda ise (HaberID, Resimyolu) idi.
Sadece sorgulama ile ilgili başlıklara ait ilgili 1 resimi slider alanıma nasıl getirebilirim?
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
< Bu mesaj bu kişi tarafından değiştirildi Guest-3DFC350BB -- 17 Mart 2015; 11:30:44 >