![]() |
[PHP] קטגוריות רקורסיביות (?)
הי :-D
יש לי עבודה קטנה על קטגוריות רקורסיביות, כך שלדוגמא בכל קטגוריה \ תת קטגוריה \ תת-תת-תת קטגוריה יוכלו להוסיף פריט מסויים אני קצת נתקע עם התכנות של זה אשמח אם תוכלו לעזור לי |קורץ| תודה |
קטגוריות תמיד יש.
לכן נוסיף טבלה שתיקרא Cats. נחלק את הטבלה Cats בצורה הבאה: ID - Name - Description - cID ID צריך להיות PRIMARY וכל השיט. Name הוא שם הקטגוריה. Description הוא תיאור הקטגוריה. cID צריך לקבל ערך 0. אם הוא לא 0, הערך שיקבל יהיה הקטגוריה שמעליו (בעצם אם הוא לא 0 הוא לא קטגוריה אלא סאב קטגוריה). בתוכם יוכלו להיות או אייטמים או סאב קטגוריות. לכן ניצור טבלה חדשה, Items. את Items נחלק כך: ID - Name - Description - cID ID שוב יהיה PRIMARY עם מספור אוטומטי. Name שם, Description תיאור.. עכשיו cID זה הקטגוריה / הסאב. שליפה: PHP קוד:
|
לדעתי אפשר לעשות את זה בטבלה אחת, יותר טוב :)
פשוט תוסיף עוד שדה c_type שנגיד 1 = קטגוריה || 2 = סאב קטגוריה || 3 = סאב סאב... וכו'.... |
בעיקרון אתה עושה שלכל קטגוריה יהיה קישוריות מסויימת לקטגוריה שמעליו(מן הסתם הID שלו) ובשליפה אתה בודק אם לקטגוריה שמעליו יש עוד קטגוריה מעליו וכך הלאה עד שאתה מגיע לראשי
ציטוט:
|
בחלה :)
תודה עומר |
ציטוט:
הצלחת, הכל היה ברור? |
עשיתי לפני איזה חודש פונקציה נורא יפה של קטגוריות רקורסיוביות...
הפונקציה היא פונקציה רקורסיבית עם div נפתחים שלכל קטגוריה יש קטגוריות נוספות ודפי תוכן. אי הגבלה לכמות הקטגוריות שניתן להכניס (לעומק של הרקורסיה). אם אתה רוצה את הפונקציה צור קשר ואני אתן לך... |
BlueNosE, הקוד שלך ממש ממש ממש לא יעיל.
4 שאליתות + 3 לולאות שקוראות לעצמן... ממש לא מומלץ. בכל אופן, הטבלה של הקטגוריות צריכה להראות כך: קוד:
id | parent_id | title בשליפה של הקטגוריות: 1. קודם כל שלוף את כל הקטגוריות לתוך מערך 2. קרא לפונקציה מסוימת, נקרא לה getCats והפונקציה הזאת תקבל 2 פרמטרים: catArr, parent_id catArr - מערך עם כל הקטגוריות שיצרת בשלב 1 parent_id - כדי להציג את כל הקטגוריות הוא צריך להיות 0 בתוך הפונקציה, אתה עובר על המערך ובודק עבור כל ערך אם ה parent_id שלו שווה ל parent_id של הפונקציה. אם כן, אתה מדפיס/מאחסן אותו איפשהו וקורא לפונקציה getCats עם אותו מערך, רק שהפרמטר השני יהיה ה id של הערך הנוכחי. הנה דוגמא של הפונקציה: PHP קוד:
בהצלחה :) |
ציטוט:
מילא אם היית עושה continue בין לבין.. חוץ מזה, הוא ביקש הצגת משהו בתוך הקטגוריה לא?.. |
ציטוט:
הצגת המידע על אותו עקרון... אני לא הולך לכתוב לו את כל הקוד. |
כל הזמנים הם GMT +2. הזמן כעת הוא 03:58. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ