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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 17-03-07, 18:37   # 1
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

עזרה בייעול ושינוי קוד PHP הקשור בקטגוריות רקורסיביות

PHP קוד:
$query_one mysql_query("SELECT * FROM `categories` WHERE `category_id` ='0' ORDER BY `id` ASC") or die(mysql_error());
while( 
$result mysql_fetch_array($query_one) )
    
$root_categories[$result["id"]] = $result["name"];

foreach( 
$root_categories as $id => $name ) {
    
$query_two mysql_query("SELECT * FROM `categories` WHERE `category_id` ='{$id}' ORDER BY `id` DESC");
    echo 
"<u>" $root_categories[$id] . "</u><br />";
        while( 
$result mysql_fetch_array($query_two) )
            echo 
$result["name"] . "<br />";

כמו שאתם רואים, לדעתי הקוד לא מי יודע מה יעיל. ובנוסף, זה מראה סאב אחד בלבד, אני צריך להפוך את זה לרקורסיבי. אפשר עזרה בייעול / המשך הקוד?
  Reply With Quote
ישן 17-03-07, 23:06   # 2
TopSite
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2006
הודעות: 317

TopSite לא מחובר  

ציטוט:
נכתב במקור על ידי Eli-Hai צפה בהודעה
PHP קוד:
$query_one mysql_query("SELECT * FROM `categories` WHERE `category_id` ='0' ORDER BY `id` ASC") or die(mysql_error());
while( 
$result mysql_fetch_array($query_one) )
    
$root_categories[$result["id"]] = $result["name"];

foreach( 
$root_categories as $id => $name ) {
    
$query_two mysql_query("SELECT * FROM `categories` WHERE `category_id` ='{$id}' ORDER BY `id` DESC");
    echo 
"<u>" $root_categories[$id] . "</u><br />";
        while( 
$result mysql_fetch_array($query_two) )
            echo 
$result["name"] . "<br />";

כמו שאתם רואים, לדעתי הקוד לא מי יודע מה יעיל. ובנוסף, זה מראה סאב אחד בלבד, אני צריך להפוך את זה לרקורסיבי. אפשר עזרה בייעול / המשך הקוד?
מה לעזזל הולך שם?
  Reply With Quote
ישן 18-03-07, 00:00   # 3
Interactive
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 36
הודעות: 210

Interactive לא מחובר  

מישהו כתב פונקציה רקורסיבית כמה פוסטים מתחתיך...חבל שלא חיפשת לפני..
ורקורסיה זה שכפונקציה קוראת לעצמה...ובקוד שלך אין פונקציה.
__________________
בדיחות
תיק עבודות
  Reply With Quote
ישן 18-03-07, 00:41   # 4
sUP
משתמש תחת חוזה ניסיון.
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אזור חיפה
הודעות: 1,948

sUP לא מחובר  

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

הקריאה לפונקציה מתוך הפונקציה בעצם יוצרת את האפקט של הרקורסיה
בכך שהיא בודקת כל פעם תתי קבוצות


לפי ויקיפדיה:
רקורסיה (Recursion) היא תופעה שכל מופע שלה מכיל מופע נוסף שלה,
כך שהיא מתרחשת ומשתקפת בשלמותה בתוך עצמה שוב ושוב.
__________________

לפרטים נוספים dani3l@gmail.com (אימייל)
  Reply With Quote
ישן 18-03-07, 14:23   # 5
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

אם אתה רוצה לעשות קטגוריות אין-סופיות זה לא עובד. נגיד יש לך את זה:
id category_id name

1 0 one
2 1 two
3 2 three

מה שזה יכתוב זה
one
two
במקום
one
two
three

אתה יכול גם במקום
PHP קוד:
echo "<u>" $root_categories[$id] . "</u><br />"
לשים
PHP קוד:
echo "<u>" $name "</u><br />"
וגם אתה לא צריך לעשות SELECT * תמיד זה טוב להגביל..


תיקון- לא ראיתי שכתבת שזה עושה סאב אחד..
  Reply With Quote
ישן 18-03-07, 16:09   # 6
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

ניסיתי לשנות, וניסיתי, וניסיתי, אבל אני צריך אינדקס של כל הקטגוריות הרקורסיביות ולא רק לפי ID1.
  Reply With Quote
ישן 18-03-07, 16:41   # 7
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

עשיתי לך משהו קצת שונה.
PHP קוד:
all_categories('0');
function 
all_categories($id){
    
$sql="SELECT * FROM `categories` WHERE `category_id` ='$id' ORDER BY `id` DESC";
    
$result mysql_query($sql) or die(mysql_error());    
    while( 
$row mysql_fetch_object($result) ){
        echo 
"<br>".get_name($row->id);
        if(
$row->top==1all_categories($row->id);    
    }    
}

function 
get_name($id){    
    
$row=mysql_fetch_array(mysql_query("SELECT `name` FROM `categories` WHERE `id`='$id'"));
    return 
$row['name'];

אתה צריך להוסיף בזה עוד שורה top או שתעשה פונקציה שתחזיר אמת או שקר אם יש מתחת לקטגוריה עוד קטגוריה
  Reply With Quote
ישן 18-03-07, 16:56   # 8
The Crow
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: קריית אונו
גיל: 36
הודעות: 181
שלח הודעה באמצעות MSN אל The Crow

The Crow לא מחובר  

http://www.hosts.co.il/forums/showpo...44&postcount=8
  Reply With Quote
ישן 18-03-07, 18:19   # 9
Eli-Hai
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 2,758

Eli-Hai לא מחובר  

טנקס, אני אציץ בקוד בהמשך היום!
  Reply With Quote
ישן 18-03-07, 21:29   # 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. הזמן כעת הוא 00:38.

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