İlişkili Tablolardan Tek Sorguda Veri Çekmek
Php Fusion v7 sürümde bazı tabloların birbirleri ile ilişkili olduğunuz görüyor. Örneğin Haber Kategorileri ve Haberler, Makale Kategorileri ve Makaleler, Resim Albümleri ve Resimler, Forum Kategorileri, Forum Başlıkları gibi sıralayabiliriz.
Standart tablolar için zaten çekirdek yapıda sorgu örnekleri mevcut, fakat tablo alanları fazla olduğundan sanki biraz karışıkmış gibi geliyor. LEFT JOIN metodu kullanılarak istediğimiz kadar tabloyu ortak alanlar ile ilişkilendirip tek sorguda ilişkili alanlarıdaki verileri listeleyebiliyoruz.
Örnekleyecek Olursak
Kategori Tablosu -> katid, katadi, kataciklama alanlarına İçerik Tablosu ise -> icerikid, icerikkatid, icerikbaslik, icerikdetay alanlarına sahip olsun...
Öyleyse sorgumuzu çalıştırırken ortak alan olan katid ve icerikkatid alanlarınız sorguda LEFT JOIN ile birleştirilmesi gerekiyor.
$sorgu=dbquery("
SELECT kat.*, icr.* FROM ".DB_ICERIK." icr
LEFT JOIN ".DB_KATEGORI." kat ON icr.icerikkatid = kat.katid
ORDER BY icr.icerikid DESC
");
yukarıda görülen sorguda urun tablosunun soluna kategorileri aldık. Böylece dönen sonunta değer varsa tek dize değişkenine tüm bilgileri aktarıp, alan adına göre yazdırabiliyoruz.
if(dbrows($sorgu)!=0){ // Eğer sonuç sıfırdan farklıysa ( kayıt Varsa)
while($veri=dbarray($sorgu)){
echo "Kategrori : ".$veri["katadi"]."
"; // Kategilerden gelen isim
echo "İçerik Başlığı : ".$veri["icerikbaslik"]."
"; // İçerikten gelen başlık
}
}
sorgu üzerinde oynamalar, eklemeler yaparak dilediğiniz ilişkilendirilebilen tablolardan veri çekebilirsiniz...
Örneğin habere özel yorumlar gibi... Gerisi hayal gücüne kalıyor. Bu tarz modül geliştirebilirsiniz.
Bol Fusionlu günler dilerim...
Henüz yorum gönderilmemiş