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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-06-07, 08:01   # 1
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

תגידו זה יעיל?(קטגוריות)

היה לי משעמם, אז חשבתי על כל מיני דרכים למצוא סאב קטגוריות, אחת מהדרכים היא זאת:
PHP קוד:
function print_subs($id,$i){
    
$sql="SELECT * FROM `category` WHERE `pid`='".$id."'";
    
$result=mysql_query($sql) or die(mysql_error());
    if(
mysql_num_rows($result)>0){
        while(
$row=mysql_fetch_array($result)){
            for (
$x=0;$x<$i;$x++) echo "-";
            echo 
$row['title']."<br />";
            
print_subs($row['id'],$i+1);                    
        }
    }

רקורסיה פשוטה, בשביל לקרוא לה אני פשוט כותב print_subs(0,0);
עשיתי אותה תוך דקה בערך, ואני יודע שיש כאן הרבה שאילתות.
אבל זה דיי יעיל לא?

Last edited by 4ior; 04-06-07 at 08:03..
  Reply With Quote
ישן 04-06-07, 09:07   # 2
O-B
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בבית
גיל: 35
הודעות: 1,423
שלח הודעה באמצעות ICO אל O-B

O-B לא מחובר  

למה ה-for?
תשתמש ב:
PHP קוד:
echo str_repeat("-"$i); 
__________________
בברכה עובד, מפתח אתרים.
  Reply With Quote
ישן 04-06-07, 09:30   # 3
HagaiA
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 33
הודעות: 605

HagaiA לא מחובר  

כמובן שזה יעיל ליצור פונקציות מוגדרות מראש מכיוון שבמקום לכתוב את הקוד כל פעם אתה פשוט עושה קורא לפונקציה עם הערכים שלה,ואני בהחלט מחזק את דעת O-B,אתה סתם הוספת FOR.
__________________
חגי אבישר - פיתוח מערכות מידע ואפליקציות אינטרנט.
  Reply With Quote
ישן 04-06-07, 09:37   # 4
4ior
חבר וותיק
 
4ior's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 1,451

4ior לא מחובר  

בקשר להוספת הfor הוספתי את זה סתם בשביל לבדוק אם זה עובד, לא חשבתי על הפונקציה שהוא נתן בכלל.

אני מדבר על הקוד אם הוא יעיל מבחינת זמן ריצה למשל, או שאפשר לעשות את זה עם פחות שאילתות, פתאום עלה לי רעיון לעשות את זה עם שתי שאילתות, אני ינסה ויכתוב כאן אם אני יצליח.
  Reply With Quote
ישן 04-06-07, 09:48   # 5
HagaiA
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Apr 2006
גיל: 33
הודעות: 605

HagaiA לא מחובר  

אתה יכול לעשות שזה יופנה לכל השאילתות שתרצה ע"י זה שהשאילתה תהיה גם ערך בפונקציה וכך זה יפעיל את השאילתה שאתה רוצה בכל פעם ובקשר לתוכן של הWHILE,
תוכל לעשות שהוא יכתוב אותו רק אם $access == "1" למשל וכך תוכל לחסוך במשאבים.
__________________
חגי אבישר - פיתוח מערכות מידע ואפליקציות אינטרנט.
  Reply With Quote
ישן 04-06-07, 12:26   # 6
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

תשלוך הכל בשאילתא אחת, ותכניס לתוך מערך שבתוכו יהיה את המידע..
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 04-06-07, 14:09   # 7
O-B
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: בבית
גיל: 35
הודעות: 1,423
שלח הודעה באמצעות ICO אל O-B

O-B לא מחובר  

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

BlueNosE לא מחובר  

PHP קוד:
$I = array();
$DB->Query("SELECT * FROM items_source");
    while (
$q $DB->Fetch())
    
$I[$q['id']] = $q
אני חושב שאפשר להבין מפה מה עשיתי, אח"כ השליפה מתבצעת ע"י לקיחת נתונים מהמערך הזה.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 04-06-07, 14:38   # 9
LosNir
מתאורר / יצא בחוץ
 
LosNir's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: ראשון לציון
גיל: 32
הודעות: 2,686
שלח הודעה באמצעות ICO אל LosNir שלח הודעה באמצעות MSN אל LosNir

LosNir לא מחובר  

ציטוט:
נכתב במקור על ידי BlueNosE צפה בהודעה
PHP קוד:
$I = array();
$DB->Query("SELECT * FROM items_source");
    while (
$q $DB->Fetch())
    
$I[$q['id']] = $q
אני חושב שאפשר להבין מפה מה עשיתי, אח"כ השליפה מתבצעת ע"י לקיחת נתונים מהמערך הזה.
אהבתי
  Reply With Quote
ישן 04-06-07, 15:09   # 10
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

יעיל ? ממש לא. ואני אתן לך לך דוגמא פשוטה
יש לי קטגוריה ראשית ובתוכה 100 תתי קטגוריות.

עבור מקרה כזה אתה תבצע 101 שאילתות בדף אחד
שזה המון !!

מה יקרה אם יהיה לי 1000 קטגוריות ? אז יתבצע 1001 שאילתות
ככה שיעיל זה ממש לא.
תלמד להשתמש ב JOIN בשאילתות של MYSQL. אני בעזרת שאילתה אחת יכול לשלוף לך את כל הקטגוריות והתתי קטגוריות, לא משנה כמה יש.

http://www.google.co.il/search?q=mys...ient=firefox-a
  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. הזמן כעת הוא 08:52.

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