id = x ise
işini görmüyor mu?SELECT * FROM `tablo` WHERE id <= x
tablo yapısı
id-------------- ad-------------parent_id
1 -------------bilgisayar------- 0
2--------------monitör-----------1
3-------------15 inch------------2
4--------------lcd ----------------3
5--------------kalitesiz --------- 4
id ---> parent_id birbirleriyle ilişkili
şu şekil bir tablo yapım var
5 numaralı id seçilince
bilgisayar >> monitör >> 15 inch >> lcd >> kaltesiz
şeklinde
4 numaralı id yi seçince
bilgisayar >> monitör >> 15 inch >> lcd
şeklinde bir çıktı almak istiyorum.
fakat ne yaptıysam olmadı. ASP ve MySQL ile çalışıyorum. yardımlarınızı bekliyorum...
Estetik Detayda Gizlidir.
id = x ise
işini görmüyor mu?SELECT * FROM `tablo` WHERE id <= x
Spoiler:
tree halde görmem gerekiyor. sanırım anlamadın![]()
Estetik Detayda Gizlidir.
Senin döndürmek istediğin MySQL sonucu bütün bu adların birleşimi ve tek satır mı? Eğer öyleyse;
SELECT CONCAT( (
SELECT ad
FROM tablo
WHERE id =1
), ' >> ', (
SELECT ad
FROM tablo
WHERE id =2
), ' >> ', (
SELECT ad
FROM tablo
WHERE id =3
), ' >> ', (
SELECT ad
FROM tablo
WHERE id =4
) ) AS tree
LIMIT 1Ama ben hala basitçe id<=x ile satırları alıp bunları küçük bir döngüyle birleştirmeni tavsiye ediyorum. Daha kestirmesi yok.
Spoiler:
bu şekildeki bir recursive fonksiyon işinizi görecektir
Kod:<% set conn = server.createobject("adodb.connection") conn.open connStr function goTop(s) SQL = "select ad, parent_id from tablo where id="& s set rs = server.createobject("adodb.recordset") rs.open SQL, conn, 1 str = rs("ad") if rs("parent_id") <> 0 then str = goTop(rs("parent_id")) & " >> "& str set rs = nothing goTop = str end function secilenID = 5 response.write goTop(secilenID) set conn = nothing %>
"oturduğum mahallenin yolları çamurluydu, boyalı ayakkabı giysem bile, o yollardan geçtikten sonra çamurlanmamaları mümkün değildi. hayatım da böyle." yılmaz güney
http://www.sipidik.com
bir not; ruby on rails ile şu şekilde yapılabiliyor kendisi.