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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 08-06-07, 14:40   # 1
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

[PHP] צריך עזרה ברקורסיה

שלום,
עשתי את הקוד הבא:

PHP קוד:
function GetCat($catp 0)
{
    
$query mysql_query("SELECT * FROM cat WHERE catp = '" $catp "' ");
    
$i 0;
    
    while(
$info mysql_fetch_array($query))
    {
        if(
$info['catp'])
        {
            
$i++;
        }

        echo 
str_repeat('>' $i) . " " $info['catname'] . "<br />";
        
GetCat($info['catid']);
    }
}

GetCat(0); 
הכל עובד טוב (כמעט)
במקום שזה יצא ככה:

קטגוריה 1
> תת קטגוריה ל 1
>> תת בתת קטגוריה 1
קטגוריה 2
> תת קטגוריה ל 2
>> תת בתת קטגוריה 2

זה יוצא ככה:

קטגוריה 1
> תת קטגוריה ל 1
> תת בתת קטגוריה 1
קטגוריה 2
> תת קטגוריה ל 2
> תת בתת קטגוריה 2

שימו לב שיש בעיה בתת קטגוריה השניה
אשמח לעזרה
  Reply With Quote
ישן 08-06-07, 15:04   # 2
Eran-s
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,609

Eran-s לא מחובר  

אתה צריך להתחיל את $i ב-1.
כי אתה לוקח את הקטגוריה הראשית ($i נשאר 0) אז לא מציג את התו.
__________________
מפתח ומתחזק אתרים.
  Reply With Quote
ישן 08-06-07, 15:18   # 3
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

אבל זה עדיין לא עובד..
  Reply With Quote
ישן 08-06-07, 16:33   # 4
X-T
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2007
הודעות: 1,021

X-T לא מחובר  

בשביל מה אתה מצהיר על CATP כ 0? הרי גם ככה כשאתה קורא לפונקציה זה מגדיר אותה, למרות שזה לא יפתור לך את הבעיה.
__________________
You don't shine if you don't glow
  Reply With Quote
ישן 08-06-07, 16:49   # 5
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

כי חייב להכניס ארגומנט, בכל זאת זה פונקציה אם שכחת..

עריכה:
כנראה שלא הסתדרתי חח..
הקוד:
PHP קוד:
function GetCat($catp $q 0)
{
    
$query mysql_query("SELECT * FROM cat WHERE catp = '" $catp "' ");
    
$i 0;
    
    while(
$info mysql_fetch_array($query))
    {
        if(
$info['catp'])
        {
            
$i++;
        }

        echo 
str_repeat('>' $q) . " " $info['catname'] . "<br />";
        
GetCat($info['catid'] , $i 1);
    }
}

GetCat(0); 
קוד מסודר יש לי אה?

Last edited by Elad-A; 08-06-07 at 17:20..
  Reply With Quote
ישן 08-06-07, 22:26   # 6
Eran-s
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,609

Eran-s לא מחובר  

ניסית בכלל את מה שאמרתי? תרשום $i = 1; במקום 0
__________________
מפתח ומתחזק אתרים.
  Reply With Quote
ישן 08-06-07, 22:42   # 7
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

כנראה שאחרי שהוספת את הq שכחת לתקן...
קוד מתוקן:

PHP קוד:
function GetCat($catp $q 0)
{
    
$query mysql_query("SELECT * FROM cat WHERE catp = '" $catp "' ");    
    while(
$info mysql_fetch_array($query))
 {
        echo 
str_repeat('>' $q) . " " $info['catname'] . "<br />";
        
GetCat($info['catid'] , $q 1);
    }
}

GetCat(0); 
  Reply With Quote
ישן 09-06-07, 21:13   # 8
בניה
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: נחושה
הודעות: 3,434

בניה לא מחובר  

PHP קוד:
function GetCat($catp 0$level 0)
{
    
$query mysql_query("SELECT * FROM cat WHERE catp = '" $catp "' ");
    if(
mysql_num_rows($query) == 0)
    {
         return 
0;
    }
    
$i 0;
    
$level++;
    while(
$info mysql_fetch_assoc($query))
    {
        echo 
str_repeat('>' $level) . " " $info['catname'] . "<br />";
        
GetCat($info['catid'], $level);
    }

  Reply With Quote
ישן 09-06-07, 20:43   # 9
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

תודה רבה ליאור
  Reply With Quote
ישן 10-06-07, 07:21   # 10
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

גם אם זה פועל זה לא יעיל..
יש לך שאילתא על כל פעם שהרקורסיה נקראת, נסה להשתמש במערך כללי..
__________________
עומר,
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. הזמן כעת הוא 01:55.

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