wmaraci reklam
lidertakipci

Sınırsız ana kategori sınırsız alt kategori ve sınırsız alt kategorinin de altı

6 Mesajlar 1.312 Okunma
advertseo
wmaraci reklam

emotionx emotionx Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 09.04.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 65
  • Beğeniler 1 / 8
  • Ticaret 0, (%0)
Merhabalar,
Şimdi tablo görünümümden bahsedeyim:
|katid|-|ad|-|ustid|
Yapmak istediğim şekle herhangi bir örnek:
Bilgisayar
-Masaüstü
--Donanım
---Ram
----DDR2
---İşlemci
----Intel
----Amd
Meseleyi anladığınızı umuyorum. Mesela alt kategorininde alt kategorisi gibi şekilde sonsuza kadar devam eden bir sistem olmalı.
Nasıl yapabiliyoruz bunu. Teşekkür ederim şimdiden :)
 

 

wmaraci
reklam

  • Üyelik 23.05.2024
  • Yaş/Cinsiyet - /
  • Meslek
  • Konum
  • Ad Soyad ** **
  • Mesajlar
  • Beğeniler /
  • Ticaret , (%)
önce ana kategorilerinin ustid lerini 0 yapmalısın,
çekerken de ana kategori olarak 0 olanları çekiceksin,
çektirme yaptıgın sorgunun içine bir sorgu daha yapıcaksın üstid çekilen id ye eşitse onuda çekicek, algoritması bu şekilde
 

 

BrutalStar BrutalStar Yazılımcı Kullanıcı
  • Üyelik 26.02.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılımcı
  • Konum İstanbul Avrupa
  • Ad Soyad U** C**
  • Mesajlar 697
  • Beğeniler 149 / 137
  • Ticaret 0, (%0)
Hocam "php recursive category tree" diye arama yaparsanız aradığınızı bulacağınızı düşünyorum.
 

 

BLOG | http://safkaninsan.blogspot.com/

apexna apexna WM Aracı Kullanıcı
  • Üyelik 27.06.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek öğrenci
  • Konum İzmir
  • Ad Soyad ** **
  • Mesajlar 62
  • Beğeniler 2 / 8
  • Ticaret 0, (%0)



Örneği üzerinden gidersek;

Root1
- SubCat 1
-- SubSubCat 1
- SubCat 2
 

 

wmaraci
wmaraci

garrip garrip WM Aracı Kullanıcı
  • Üyelik 12.11.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Web Master
  • Konum Samsun
  • Ad Soyad Y** G**
  • Mesajlar 14
  • Beğeniler 0 / 0
  • Ticaret 0, (%0)
Sınırsız kategori sisteminden bahsediyorsunuz. Başka bir websitesinde gördüğüm ve biraz düzenleyerek kullandığım kodlar aşağıdadır. Sürekli veritabanı ile ilişki kurmaktansa tek seferde kategorileri çekip array yöntemiyle işlem yapmak daha mantıklı.

Detay için : buraya tıklayın

/**
* Sınırsız kategori fonksiyonu
*
* @author Hakan KAYA
* Emeğe saygı ...
*/

header('Content-Type:Text/html; charset=utf8 ');

// Dbden aldığınız menü veya sayfalar.
$sayfalar = array(
array(
'id' =>1 ,
'menu' => 'Anasayfa',
'ebeveyn' => 0
)
,
array(
'id' =>2 ,
'menu' => 'Hakkımızda',
'ebeveyn' => 0
)
,
array(
'id' =>3 ,
'menu' => 'İletişim',
'ebeveyn' => 0
)
,
array(
'id' =>4 ,
'menu' => 'Biz Kimiz',
'ebeveyn' => 2
)
,
array(
'id' =>5 ,
'menu' => 'Misyonumuz',
'ebeveyn' => 4
)
,
array(
'id' =>6 ,
'menu' => 'Vizyonumuz',
'ebeveyn' => 4
)
);




// Fonksyionumuz
function sayfa_nested($sayfalar , $ebeveyn = 0 , $kademe_pixel = 5 , $i = 0 , $menuler = NULL , $nested = FALSE )
{

// Sayfalar Boşşa boş döndür.
if(empty($sayfalar))
return;


// Eğer fonksiyon içinden çağırılmıyorsa
if (!$nested)
{
// Sayfaları ebeveyn idsi ile yeni dizi oluştur
foreach($sayfalar as $row):
$items[$row['ebeveyn']][] = $row;
endforeach;
}
else
{
// Nested ise gelen sayfaları al
$items = $sayfalar;
}

// Gelen sayfaları aç
foreach($items[$ebeveyn] as $sayfa)
{
// Boşluk hesapla
$bosluk = str_repeat(' ',($i*$kademe_pixel));

// Menuleri değişkene aktar
$menuler .= ''.PHP_EOL;

// Açılan menude bir alt sayfa var ise nested çağır
if (isset($items[$sayfa['id']]))
$menuler = sayfa_nested($items , $sayfa['id'] , $kademe_pixel , ($i+1) , $menuler , TRUE);

}

// Oluşan menüleri return et
return $menuler;
}


echo '';
 

 

emotionx emotionx Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 09.04.2013
  • Yaş/Cinsiyet 33 / E
  • Meslek Öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad ** **
  • Mesajlar 65
  • Beğeniler 1 / 8
  • Ticaret 0, (%0)
Sorun başka kod ile çözülmüştür teşekkür ediyorum yardımcı olan kişilere :)
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al