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

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

   
|!|

סגור את ההודעה
 
כלים לאשכול תצורת הצגה
ישן 06-07-07, 07:11   # 1
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

בעיה ברקורסיה

או קי העניין הוא כזה....
PHP קוד:
function getContent($pid=0$level=0){ 
    
$query mysql_query("SELECT  id,  pid,  title  FROM  content  WHERE  pid  =  '$pid'"); 
    while (
$sql mysql_fetch_array($query)){ 
        echo  
$level." - ".$sql['title']."<br />";
        
getContent($sql['id'], $level++); 
    } 
}
getContent(); 
הפלט שיוצא לי הוא:
קוד:
0 - main
0 - main_sub_1
1 - main_sub_2
1 - second page
1 - second page sub 1
2 - second page sub 2
2 - sub sub 1
3 - sub sub 2
3 - second page sub 3
2 - third page
2 - third page sub 1
3 - third page sub 2
הוא מסדר את התוכן כמו שאני רוצה מבחינת סדר...
הבעיה שלי היא הlevel

זה מה שאני מחפש שיצא:
קוד:
0 - main
  1 - main_sub_1
  1 - main_sub_2
0 - second page
  1 - second page sub 1
  1 - second page sub 2
    2 - sub sub 1
    2 - sub sub 2
  1 - second page sub 3
0 - third page
  1 - third page sub 1
  1 - third page sub 2
מישהוא רואה פה את מה שאני מפספס?
תודה מראש
 
ישן 06-07-07, 07:54   # 2
DorWD
תודה על תרומתך.
 
DorWD's Avatar
 
מיני פרופיל
תאריך הצטרפות: Jan 2006
מיקום: עפולה
גיל: 31
הודעות: 2,259

DorWD לא מחובר  

אתה לא מפספס כלום .
מה שאתה צריך לעשות זה דיב, עם text-indent, ושהlevel יהיה מספר הtext-indent.
ככה שכל פעם שהlevel גודל, כך גם הtext-indent

אז בקצרה מה שתצטרך לעשות זה כך:
PHP קוד:
function getContent($pid=0$level=0){ 
    
$query mysql_query("SELECT  id,  pid,  title  FROM  content  WHERE  pid  =  '$pid'"); 
    while (
$sql mysql_fetch_array($query)){ 
        echo  
"<div style=\"text-indent: ".$level 10."px;\">".$level." - ".$sql['title']."</div><br />";
        
getContent($sql['id'], $level++); 
    } 
}
getContent(); 
בהצלחה
__________________
מתכנת WEB
 
ישן 06-07-07, 08:19   # 3
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

לא....
מה שעכשיו יש בפלט אם שמת לב זה הlevel ותראה מה קורה שם...
כמובן שאחר-כך אני יוכל לשחק עם הlevel והpadding אבל הבעיה שלי היא שהlevel לא יוצא בסדר נכון...

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

Elad-A לא מחובר  

בשביל לבדוק את זה תעשה str_repeat לפי המשתנה $i זה יסדר לך.
 
ישן 06-07-07, 08:26   # 5
חיים
חבר וותיק
 
חיים's Avatar
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: עפולה
גיל: 32
הודעות: 1,548
שלח הודעה באמצעות ICO אל חיים שלח הודעה באמצעות MSN אל חיים Send a message via Skype™ to חיים

חיים לא מחובר  

אםם אולי תנסה לשנות את השורה הזאת:
PHP קוד:
getContent($sql['id'], $level++); 
לשורה הזאת
PHP קוד:
getContent($pid++, $level++); 
__________________
בברכה, חיים.

 
ישן 06-07-07, 08:33   # 6
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

ציטוט:
נכתב במקור על ידי Elad-A צפה בהודעה
בשביל לבדוק את זה תעשה str_repeat לפי המשתנה $i זה יסדר לך.
איזה $i אין לי משתנה כזה בכל הרקורסיה או הלולאה בכלל...


ציטוט:
נכתב במקור על ידי masterpl צפה בהודעה
אםם אולי תנסה לשנות את השורה הזאת:
PHP קוד:
getContent($sql['id'], $level++); 
לשורה הזאת
PHP קוד:
getContent($pid++, $level++); 
לא רואה איך זה עוזר, סתם מכניס את הרקורסיה ללואה אין סופית ומפיל לי את הhttp
 
ישן 06-07-07, 08:35   # 7
Elad-A
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 1,987

Elad-A לא מחובר  

PHP קוד:
echo  str_repeat("-" $level) . $sql['title']."<br />"
משהו כזה
 
ישן 06-07-07, 08:41   # 8
DCB
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 966

DCB לא מחובר  

ציטוט:
נכתב במקור על ידי Elad-A צפה בהודעה
PHP קוד:
echo  str_repeat("-" $level) . $sql['title']."<br />"
משהו כזה
לא עזר...
תקרא שוב את השאלה שלי ותסתכל על הפלט שאני מקבל ומה שאני מנסה לקבל...
מה שנתת לי סתם מחליף את המספר ברווחים וזאת לא הבעיה שלי
 
ישן 06-07-07, 15:59   # 9
Eran-s
הוסטסניון
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,609

Eran-s לא מחובר  

תעשה טובה תרשום את הקוד מחדש.
אני יכול לעזור לך לתקן אותו אבל לא טוב לך פה,
אתה יכול לעשות הכל בשאילתה אחת מה אתה מסתבך, במקום שוב ושוב לזמן אותה.
תקרא על JOIN.
__________________
מפתח ומתחזק אתרים.
 
ישן 06-07-07, 16:27   # 10
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

PHP קוד:
function getContent($pid=0$level=0){ 
    
$query mysql_query("SELECT  id,  pid,  title  FROM  content  WHERE  pid  =  '$pid'"); 
    while (
$sql mysql_fetch_array($query)){ 
 echo 
str_repeat(" " $level);  
        echo  
$level." - ".$sql['title']."<br />";
        
getContent($sql['id'], $level++); 
    } 
}
getContent(); 
אחי, אלעד נתן לך בדיוק מה שצריך. תחשוב קצת ותשנה את ה"-" ל-" "..
 
סגור את ההודעה

חברים פעילים הצופים באשכול זה: 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:39.

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