Üst kategoriyi bulma..

192 views
Skip to first unread message

Berk Neis

unread,
Feb 18, 2014, 3:08:51 PM2/18/14
to php-...@googlegroups.com
Merhabalar,
Sürekli olarak merak edipte bir türlü mantık olarak çözümleyemediğim bir konu.
Ne demek istediğimi anlatabilmek için ilk öncelikle mysql tablo yapısını gösteriyim.

ID | CatName | parent |
1 | abc11 | 0 |
2 | abc22 | 1 |
3 | abc33 | 2 |
4 | abc44 | 2 |
5 | abc55 | 3 |
6 | abc66 | 5 |
7 | abc77 | 6 |

şimdi yukarıya baktığınız zaman ID değeri 1 olan abc11 isimli kategorinin parent değeri 0. Bunu bağlantısız kategori olarak kabul ettik ve bu kategoriye bağlı kategoriler bulunmakta.
En alt olan kategorinin ID değeri 7'dir ve parent değeri yani parent içerisinde ID değeri 6'dır.
Buradan mysql içerisinde parent değerini çekebilmemiz oldukça basit.
Lakin ben istiyorum ki; 
ID değeri 7 olan kategoriyi çağırdığımda bunun bağlı olduğu bütün kategorileri listeleme.
Yani sıralama şu şekilde olacaktır;
ID => 1
ID => 2
ID => 3
ID => 5
ID => 6
ID => 7
Kısaca 7 değerini aldığımda buradaki 1 değerini nasıl elde edebilirim?
Döngü içerisinde yapmaya kalktığım zaman, x sayıda olduğu için döngüyü kaç kez döndüreceğimi de bilemiyorum.
Bu konuda mantıklı bilgilendirme yapabilecek var mı? Bunun bir yolu var mı?
Gelecek olan cevaplarınızdan dolayı şimdiden teşekkür ederim.

Raşit Apalak

unread,
Feb 19, 2014, 9:07:58 PM2/19/14
to php-...@googlegroups.com
Programlamada Recursive olarak bilinen bir yöntem mevcut. Recursive function, kendini çağıran, tekrar eden fonksiyon anlamına geliyor.
Belirli bir koşul sağlanana kadar fonksiyon kendini tekrar eder. Döngüden farkı koşulun fonksiyon içinde tanımlanmasıdır.
Aramanızı buna göre yaparsanız bir çok örneğe ulaşabilirsiniz.

18 Şubat 2014 Salı 22:08:51 UTC+2 tarihinde Berk Neis yazdı:

tlnakt

unread,
Jan 8, 2015, 3:50:25 AM1/8/15
to php-...@googlegroups.com
ID 7 olan kategorinin bağlı olduğu kategori ID 6. ID 7 nin bağlı olduğu tüm kategoriler ne demektir anlayamadım? Yani 7 olan kategori ile sadece 6 nın bağı var. Yani dizi şunun gibi devam eder:

|_ Cat 1
|__ SubCat 1.1
|__ SubCat 1.2
|___ SubCat 1.2.1
|_ Cat 2
|_ Cat 3
|__ SubCat 3.1



18 Şubat 2014 Salı 22:08:51 UTC+2 tarihinde Berk Neis yazdı:
Merhabalar,

hbyil...@gmail.com

unread,
Jan 9, 2015, 2:43:39 AM1/9/15
to php-...@googlegroups.com
anladığım kadarıyla Berk; elinde olan kategori değerinden kök kategoriye kadar bütün üst kategorileri alabileceği bir sql sorgusu istiyor. Bunu tek select cümlesi ile yapamazsın. Mysql de yada uygulamanda fonksiyon tanımlayarak bu işlemi yapabilirsin. Raşitin bahsettiği gibi bir recursive funksiyon tanımlayıp verdiğin örnekteki gibi parent değeri 0 olan kadar fonksiyonun kendisini çağırmasını sağlayabilirsin.

Cahit Güçlü

unread,
Jan 9, 2015, 2:47:53 AM1/9/15
to php-...@googlegroups.com
http://gokhanbeken.com/sinirsiz-hiyerarsik-kategori-sistemi-ver-1 adresinde hiyerarşik yapılarla ilgili bir örnek çalışma var. Bir projemde ben oldukça faydalanmıştım. İsterseniz bir inceleyin.

8 Ocak 2015 10:50 tarihinde tlnakt <fungam...@gmail.com> yazdı:

--
--
Bu mesaj "PhP-MySQL" mail grubundan gelmiştir.
Bu gruba mesaj göndermek için PhP-...@googlegroups.com mail adresini kullanınız.
Bu gurubtan ayrılmak için bu PhP-MySQL-...@googlegroups.com mail adresine mail atınız.
Daha fazla bilgi için http://groups.google.com/group/PhP-MySQL
Teşekkürler.
BaRzO
---
Bu iletiyi Google Grupları'ndaki "PhP-MySQL" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için php-mysql+...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.



--
Dr Cahit Güçlü

Faruk koçyiğit

unread,
Jan 9, 2015, 3:06:39 AM1/9/15
to php-...@googlegroups.com
Tek üste iyi ama çokulu onuca kötü oluyor ( firmalar->Yönetim kurulu->pazalama müdürüler->pazarlamacı)  pazarlamacıdan direk yönetim kuruluma çıkmak için 2 sorgu yapmak gerekiyor Bunu yerine özel id üretilir ise daha hızlı sonuçlar alına biliyor (Fi01.Yo01.PM01.PA01) gibi 
Reply all
Reply to author
Forward
0 new messages