ABA


"|PHP&MySQL| יעול פוקנציה"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #10801 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10801
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   20:33   26.08.06   
אל הפורום  
  |PHP&MySQL| יעול פוקנציה  
 
   ערכתי לאחרונה בתאריך 26.08.06 בשעה 21:15 בברכה, MoonHunter
 
הפונקציה שאני מתכוון לדבר עליה היא פונקציה שמציגה לי קטגוריות.

הסבר כללי על איך שהקטגוריות אצלי בנויות :
יש לי 2 שדות שצריך להתייחס אליהם, ID וPARENT.
כאשר אני יוצר קטגוריה, היא מקבלת ID יחודי.
כאשר הקטגוריה ראשית, היא מקבלת PARENT = 0.
כאשר אני יוצר תת קטגוריה לקטגוריה מסויימת, התת-קטגוריה מקבלת בPARENT, את הID של קטגורית האב.
למשל קטגוריה ראשית:
ID = 1, PARENT = 0.
ID = 2, PARENT = 0.
ID = 3, PARENT = 0.
עכשיו אני יוצר לקטגוריה הראשונה תת-קטגוריה:
ID = 4, PARENT = 1.


הפונקציה שלי פעולת ככה:
היא שולפת את כל הקטגוריות הראשיות, כלומר כל אלו עם PARENT=0,
אחר כך עבור כל תוצאה היא מוצאת את כל הילדים של אותה קטגוריה.
למשל אם קיבלה את התוצאות האלו:
ID = 1, PARENT = 0.
ID = 2, PARENT = 0.
ID = 3, PARENT = 0.
היא תריץ 3 שאילתות נפרדות עבור כל אחת מהתוצאות.
פה הבעיה שלי, את זה אני רוצה לייעל.

חשבתי על שליפה כללית של כל הקטגוריות הרלוונטיות, כולל התת-קטגוריות בשאילתה אחת.
אבל את הדרך שבה אני אבצע מניפולציה על התוצאות לא מצאתי, פה אתם באים לתמונה:
איך אני יכל להציג את התוצאות שכל תוצאה שיש לה PARENT=0 תוצג ראשונה ואז כל הילדים שלה, כלומר
כל התוצאות שיש להם PARENT זהה לID של אותה קטגוריה יבואו מיד אחריה.


*בעקרון חילקתי את התוצאות ל2 מערכים, מערך של קטגוריות ראשויות ותת-קטגוריות,
פה נתקעתי, חשבתי להשתמש בפונקציה הזו:
http://il.php.net/manual/en/function.array-keys.php
כלומר, עבור כל תוצאה של מערך הפונקציות הראשיות, אני אשתמש בפונקציה array_keys על המערך של התת-קטגוריות ולהדפיס אותם.

תודה לכל העוזרים, הבעיה הזאת ממש חשובה לי.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  מה שאני עושה עגכשיו הוא כזה: MoonHunter 27.08.06 20:00 1
  אפ MoonHunter 27.08.06 22:54 2
  מצאתי פיתרון MoonHunter 29.08.06 23:45 3

       
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   20:00   27.08.06   
אל הפורום  
  1. מה שאני עושה עגכשיו הוא כזה:  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 27.08.06 בשעה 20:04 בברכה, MoonHunter
 
$C_ID הוא הID של הקטגוריה הראשית מהלולאה החיצונית יותר.

זה הקוד המלא שלי, אני מקווה שתבין:
C_Products = 3 - קטגוריות ראשיות
C_Products = 4 - תת-קטגוריות

            $ogen_array = Array();
$regul_array = Array();

while ($prod = mysql_fetch_assoc($result))
{
if ($prod['C_Products'] == 3)
{
$ogen_array[$prod ['C_ID']]['C_ID'] = $prod['C_ID'];
$ogen_array[$prod ['C_ID']]['C_Name'] = $prod['C_Name'];
}
elseif($prod['C_Products'] == 4)
{
$regul_array[$prod ['C_ParentID']][$prod ['C_ID']]['C_ID'] = $prod['C_ID'];
$regul_array[$prod ['C_ParentID']][$prod ['C_ID']]['C_Name'] = $prod['C_Name'];
}
}

foreach ($ogen_array as $result_products)
{
$C_ID = $result_products['C_ID'];
$NAME = $result_products['C_Name'];
echo "$C_ID $NAME<br \>";

print_r($regul_array['$C_ID']);
echo "<br \>";
}

השגיאה שאני מקבל:
Warning: Invalid argument supplied for foreach() in /home/mamboheb/domains/mamboheb.com/public_html/sell/test/vtest.php on line 132

http://mamboheb.com/sell/test/vtest.php?C_ID=108


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   22:54   27.08.06   
אל הפורום  
  2. אפ  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
MoonHunter
חבר מתאריך 1.8.02
680 הודעות, דרג אמינות חבר זה
   23:45   29.08.06   
אל הפורום  
  3. מצאתי פיתרון  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net