הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

 
 
כלים לאשכול תצורת הצגה
Prev הודעה קודמת   הודעה הבאה Next
ישן 23-10-10, 23:28   # 11
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי Shay Falador צפה בהודעה
אני לא חושב שתוכל לעשות את זה בשאילתה אחת ללא SUB QUERIES,
אם הייתי רוצה להתייעל כמה שיותר הייתי שולף את כל הדברים שהם תתי קטגוריות ואת כל הקטגוריות בנפרד בשתי שאילתות. אז הייתי רץ על השאילתה תתי הקט' וכל פעם שמתחילה קט' חדשה הייתי מציג את הפרטים של ה'ט הראשית הרלוונטית.
ציטוט:
נכתב במקור על ידי Exa.co.il צפה בהודעה
זה יעבוד בתנאי שיש רק רמה אחת של תתי קטגוריות: אבא ובן. אם יש לנו נינים ויותר עמוק זה כבר לא יעבוד וחייבים רקורסיה (או הרבה מאוד לולאות פנימיות.. אבל זה ממש לא חכם )

בכללי, השאלה היא את מי רוצים להעביד קשה ומה הוא צוואר הבקבוק: שרת ה-WEB שלך או ה-DB שלך. אפשר אכן לטעון את כל הקטגוריות לתוך מערך ולעשות את הרקורסיה בצד שרת או לקבל את זה מוכן מה-DB.
למה להסתבך?
http://www.waisbord.co.il/
באתר הזה בניתי תפריט עם אינסוף קטגוריות אפשריות. הקוד טיפה ישן, עברה איזו חצי שנה מאז הבניה של האתר ובערך שנה מכתיבת הקוד של התפריט, אבל הקוד בסיסי:

PHP קוד:
class Shop {
...
    function 
LoadCategories()
    {
        global 
$DB;
        
$DB->Select("shop_categories","*","ORDER BY priority");
        if (!
$DB->Rows()) return false;

        
$catsL1 = Array();
        
$catsL2 = Array();
        while (
$q $DB->Fetch())
        {
            if (
$q['parentID'] == 0)
            
$this->catsL1[$q['id']] = $q;
            else
            
$this->catsL2[$q['parentID']][$q['id']] = $q;
        }
        return 
true;
    }

מכאן העבודה מאוד פשוטה. אני רץ בלולאה הראשונה על הקטגוריות שיושבות בL1 ומשם אם קיימות קטגוריות משנה (ISSET פשוט) אני נכנס לרקורסיה.
אמנם יש רקורסיה- אבל היא לא של שאילתות! שימו לב שכל המערכת בנויה על שליפה אחת. כמו ש-Exa ציין, מפה אפשר אפילו להתקדם עם JS לאחר העיבוד של העמוד בשרת.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
 

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 15:57.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ