BlueNosE, הקוד שלך ממש ממש ממש לא יעיל.
4 שאליתות + 3 לולאות שקוראות לעצמן...
ממש לא מומלץ.
בכל אופן, הטבלה של הקטגוריות צריכה להראות כך:
קוד:
id | parent_id | title
אם זו קטגוריה ראשית, אתה שם 0 ב parent_id.
בשליפה של הקטגוריות:
1. קודם כל שלוף את כל הקטגוריות לתוך מערך
2. קרא לפונקציה מסוימת, נקרא לה getCats והפונקציה הזאת תקבל 2 פרמטרים: catArr, parent_id
catArr - מערך עם כל הקטגוריות שיצרת בשלב 1
parent_id - כדי להציג את כל הקטגוריות הוא צריך להיות 0
בתוך הפונקציה, אתה עובר על המערך ובודק עבור כל ערך אם ה parent_id שלו שווה ל parent_id של הפונקציה. אם כן, אתה מדפיס/מאחסן אותו איפשהו וקורא לפונקציה getCats עם אותו מערך, רק שהפרמטר השני יהיה ה id של הערך הנוכחי.
הנה דוגמא של הפונקציה:
PHP קוד:
function getCats($arr, $parent = 0)
{
foreach ($arr as $val)
{
if ($val['parent_id'] == $parent)
{
echo $val['title'];
getCats($arr, $val['id']);
}
}
}
מקווה שהכל מובן.
בהצלחה
