הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   רקורסיה (https://hosts.co.il/forums/showthread.php?t=41173)

TopSite.co.il 09-03-07 13:49

תראה, שימוש בריקורסיה המצריך שליפת מידע מDB רצוי תמיד לתכנן את הפונקציה שהיא תשלוף את כ-ל המידע הדרוש מהמסד ותעשה על המידע הזה מניפולציה בריקוריסה בלבד.
הדוגמא הקלאסית זה ממשק קטגוריות, שיש צורך בקטגוריות ראשיות, תת-קטגוריות, תת-תתי-קטגוריות וכו'.
במקום לשלוף את כל הקטגוריות הראשיות, ועבור כל קטגוריה את הבנים שלה ועבור כל בן את הבנים שלו עדיף לשלוף נניח את כל הקטגוריות ולבנות מהן מערך כלשהו ובאמצעות ריקורסיה לעבור ולעבד את המידע.

בהצלחה.

DorWD 09-03-07 22:44

ציטוט:

נכתב במקור על ידי TopSite.co.il (פרסם 435783)
תראה, שימוש בריקורסיה המצריך שליפת מידע מDB רצוי תמיד לתכנן את הפונקציה שהיא תשלוף את כ-ל המידע הדרוש מהמסד ותעשה על המידע הזה מניפולציה בריקוריסה בלבד.
הדוגמא הקלאסית זה ממשק קטגוריות, שיש צורך בקטגוריות ראשיות, תת-קטגוריות, תת-תתי-קטגוריות וכו'.
במקום לשלוף את כל הקטגוריות הראשיות, ועבור כל קטגוריה את הבנים שלה ועבור כל בן את הבנים שלו עדיף לשלוף נניח את כל הקטגוריות ולבנות מהן מערך כלשהו ובאמצעות ריקורסיה לעבור ולעבד את המידע.

בהצלחה.

אני לא חושב שצריך לפתוח אשכול חדש בשביל זה

אז ככה עשיתי רקורסיה, שיחקתי ועבדתי עם זה קצת, זה מה שיצא:
http://www.dorwd.com/recursion.php

עכשיו השאלה שלי היא:
אני רוצה להוציא למשל את הbasketball ואת ה"ילדים" שלו לפי id
הid של הbasketball הוא 2.
אז אני רוצה להוציא אותו ואת ה"ילדים" שלו כrecursion.php?id=2
איך עושים את זה?
הנה הקוד הנוכחי:
PHP קוד:

<?
function  display($item=0$level=0)  { 
        
$query  =  "SELECT  id,  parent,  title  FROM  tree  WHERE  parent  =  '$item'"
        
$result  =  mysql_query($query)  or  die  (mysql_error()); 
       
$level++; 
        while  (
$row  =  mysql_fetch_assoc($result))  { 
        echo 
"<ul>";
        if (
$level == 1){
                echo  
"<li><b><p  style=\"text-indent:".($level  0)."\">".$row['title']."</p></b></li>\n"
            }
                else{
                echo  
"<li><p  style=\"text-indent:".($level  *  15)."\">".$row['title']."</p></li>\n";
            }
                
        echo 
"</ul>";
                
display($row['id'],$level); 
        } 
}
display(0);
?>


Level-Serv 10-03-07 01:08

ציטוט:

נכתב במקור על ידי DorWD (פרסם 436216)
אני לא חושב שצריך לפתוח אשכול חדש בשביל זה

אז ככה עשיתי רקורסיה, שיחקתי ועבדתי עם זה קצת, זה מה שיצא:
http://www.dorwd.com/recursion.php

עכשיו השאלה שלי היא:
אני רוצה להוציא למשל את הbasketball ואת ה"ילדים" שלו לפי id
הid של הbasketball הוא 2.
אז אני רוצה להוציא אותו ואת ה"ילדים" שלו כrecursion.php?id=2
איך עושים את זה?
הנה הקוד הנוכחי:
PHP קוד:

<?
function  display($item=0$level=0)  { 
        
$query  =  "SELECT  id,  parent,  title  FROM  tree  WHERE  parent  =  '$item'"
        
$result  =  mysql_query($query)  or  die  (mysql_error()); 
       
$level++; 
        while  (
$row  =  mysql_fetch_assoc($result))  { 
        echo 
"<ul>";
        if (
$level == 1){
                echo  
"<li><b><p  style=\"text-indent:".($level  0)."\">".$row['title']."</p></b></li>\n"
            }
                else{
                echo  
"<li><p  style=\"text-indent:".($level  *  15)."\">".$row['title']."</p></li>\n";
            }
 
        echo 
"</ul>";
                
display($row['id'],$level); 
        } 
}
display(0);
?>


לא קצת מיותר לעשות ($level * 0)? אפשר פשוט לרשום 0.

DorWD 10-03-07 01:10

ציטוט:

נכתב במקור על ידי Level-Serv (פרסם 436283)
לא קצת מיותר לעשות ($level * 0)? אפשר פשוט לרשום 0.

חפיף, אני רק חייב לדעת את השאלה ששאלתי


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

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