İçeriğin rss beslemesi kullanımda değil Soru - Cevap Bölümü

Kullanıcıya Ait Cevap

adres metoikos profilini göster
Yılmaz Uğurlu 03.06.2008 14:06:47
En iyi cevap mı ?
Faydalı cevap

Derinliğinden kasıt ana menüye bağlı olan alt menüleri almakta mı zorlanıyorsunuz? Biraz daha bilgi verirseniz sanırım uygun bir çözüm yolu bulabiliriz. Benim anladığım veritabanı sorgu sonucunu, sıradaki kayıdın alt menu(kategori ya da içerik de olabilir)’lerini alarak iç içer geçmiş bir array oluşturmak istiyorsunuz?

Bunun için iki fonksiyon oluşturabilirsiniz, birincisi id parametresini aldığı içerie ait alt içerikleri döndürür, gördüğüm kadarı ile verdiğiniz örnekde parent isimli bir alan var, bu o kaydın bağlı olduğu üst kaydı gösteriyor sanırım.

İkinci fonksiyon sıradaki içeriğe ait alt kayıt var mı yok mu kontrol yapan fonksiyon olur. Kısa bir örnekleme yaparsak.


function altMenuVarMi($parent)
{
    // varsayılan olarak false döndürelim
    $alt_menu= false;
    // gönderilen parent değişkenine bağlı içerik var mı sayalım
    $sorgu= mysql_query(sprintf("select COUNT(*) AS kayit from tree where parent_id = %d", $parent));
    $sonuc= mysql_fetch_assoc($sorgu);
    // eğer kayıt var ise
    if ($sonuc['kayit'] > 0)
    {
        $alt_menu= true; // true yani içerik var olarak işaret koyalım
    }

    return $alt_menu;
}
$dizi = array();
function Listele($hedef= 0, &$dizi)
{
    /*
     * hedef parametresi 0 dan büyük ise gönderilen değere ait alt kayıtları buluruz
     * eğer sıfıra eşit ise parent_id değeri 0 olan ana menü içeriklerini alırız
    */
    $sorgu = mysql_query(sprintf("select * from tree where parent_id = %d", $hedef));
    // eğer bir kayıt dönmüş ise
    if (mysql_num_rows($sorgu) > 0)
    {
        // kayıtları üzerine sıra ile döndüye girerek gerekli dizi yapısını oluşturalım
        while ($sonuc= mysql_fetch_assoc($sorgu))
        {
            // sıradaki kaydın bilgilerini dizimizde oluşturduğumuz yeni elemana ekleyelim
            // menu_3, menu_4, şeklinde dizi elemanlarımızı sıralıyoruz
            $dizi['menu_'.$sonuc["id"]]= array (
                'id' => $sonuc["id"],
                'parent' => $sonuc["parent_id"],
                'urun' => $sonuc["urun_id"],
                'tip' => $sonuc["tip"],
                'tip' => $sonuc["title"]
            );
            // bu menüye ait alt menüler için boş bir dizi oluşturalım
            $dizi['menu_' . $sonuc["id"]]['childs']= array ();
            // oluşturduğumuz bu childs elemanını Listele fonksiyonuna $dizi isimli değişkende referans olarak aktaracağız
            // bu sayede $dizi['menu_'.$sonuc["id"] elemanının childs elemanına ona ait alt menüleri eklemiş olacağız
            // öncelikle bakmamız gereken sıradaki elemana ait alt içerik var mı?
            if (altMenuVarMi($sonuc["id"]))
            {
                // şimdi childs elemanımıza alt içerikleri dolduralım
                Listele($sonuc["id"], &$dizi['menu_'.$sonuc["id"]]['childs']);
            }
        }
    }

    // sonuç olarak dizimizi döndürelim
    return $dizi;
}
print_r(json_encode(Listele(0, &$dizi)))

100% emin değilim çalığ çalışmayacağından fazla zamanım olmadığı için deneme ya da farklı şekilde örneklendirme şansım yok, ancak buna benzer bir şekilde istediğin iç-içe diziyi oluşturman mümkün.

25/05/2008 - 03:10:58 cevap (4) Okunma : 991 Bu yazıyı 2 kişi tuttu.

php recursive function dan array oluşturmak

merhaba

burdaki örnekde http://saltokunur.net/showpost.php?p=88885&postcount=2

mysql den verileri cekip ekrana basa biliyorum ancak veri tabanın dan aldıgım bilgiyi array a çevirmem gerekiyor.

şimdiden tesekkürler.

yeni üyelik | şifremi unuttum

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Toplantı Kahraman ve need4code.com Projesi Connect Toplantısı

Kahraman ve need4code.com Projesi Connect Toplantısı

Selam arkadaslar, Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 16Aralı...
Kategori: Toplantı

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 725 (1 kayıtlı, 724 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul