לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #1  
ישן 25-12-2005, 14:49
  Shuki142 Shuki142 אינו מחובר  
 
חבר מתאריך: 02.02.05
הודעות: 99
איך יוצרים מערכת קטגוריות דינאמית

שלום רב לכלל הגולשים
אני צריך את עזרתכם בהבנת הדרך בה ניתן לבנות מערכת של קטגוריות שבה הלקוח יוכל לשלוט בה דרך לוח בקרה.
המערכת חייבת לאפשר ללקוח להוסיף כמה קטגוריות שהוא רוצה וכמה תתי קטגוריות שהוא רוצה.
לדוגמה:
1.קטגוריה 1
2.קטגוריה 2
__4. תת קטגוריה 2
__5. תת קטגוריה 2
____6. תת קטגוריה 5
3. קטגוריה 3
__7. תת קטגוריה 3
____8. תת קטגוריה 7
______10. תת קטגוריה 8
__9. תת קטגוריה 3
11. קטגוריה 4

זה לדוגמה מקווה שהבנתם.

עכשיו אני עושה את זה עם מסד נתונים של Mysql חשבתי על טבלה שיש בה מזהה של הקטגוריה ומזהה של קטגורית האב שלו.
אם בקטגורית האב יש 0 זאת אומרת שזאת קטגוריה ראשית.
להכניס למסד נתונים את הקטגוריות אין לי בעיה.
הבעיה שלי היא איך אני מוציא את הנתונים מהמסד ומציג את זה באתר בסדר הנכון שהקטגוריות אמורות להופיע (כאילו תת קטגוריה מתחת לקטגוריה הראשית שלה).

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

נ.ב
חיפשתי חומר על זה בפורום ולא מצאתי משהו עם תשובה שמספקת אותי.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #5  
ישן 25-12-2005, 19:48
  Shuki142 Shuki142 אינו מחובר  
 
חבר מתאריך: 02.02.05
הודעות: 99
בתגובה להודעה מספר 1 שנכתבה על ידי Shuki142 שמתחילה ב "איך יוצרים מערכת קטגוריות דינאמית"

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

שתיים בניתי משהו וזה עובד בדיוק כמו שרציתי אבל זה עובד עד שתי תתי קטגוריות בתפריט.
שימו לב לקוד הבא.
קוד PHP:
<?php
include "connect.php"//connecting to MySQL server and DB
//building the sql query:
$show_query="SELECT * from category where id_parent=0";
$result=@mysql_query($show_query,$con) or die("<BR><B>ERROR:</B> error occured in mysql query.<BR>"); //execute the query or exit on failure
//display table of the students and thier grades:
 
while ($row=mysql_fetch_array($result)) //as long as there are rows in the result
{
    echo 
$row["category_name"];
if (
$row["sub_category"]==1){
$sub_category="SELECT * from category where id_parent='".$row["id"]."'";
$r_sub_category=@mysql_query($sub_category,$con) or die("<BR><B>ERROR:</B> error occured in mysql query.<BR>");
while (
$row_1=mysql_fetch_array($r_sub_category)) //as long as there are rows in the result
{
    echo 
"<br>";
    echo 
"&nbsp;&nbsp;&nbsp;&nbsp;";
    echo 
$row_1["category_name"];
if (
$row_1["sub_category"]==1){
$sub_sub_category="SELECT * from category where id_parent='".$row_1["id"]."'";
$r_sub_sub_category=@mysql_query($sub_sub_category  ,$con) or die("<BR><B>ERROR:</B> error occured in mysql query.<BR>");
while (
$row_sub_1=mysql_fetch_array($r_sub_sub_category)  ) //as long as there are rows in the result
{
    echo 
"<br>";
    echo 
"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    echo 
$row_sub_1["category_name"];
}
}
}
}
    echo 
"<br>";
}
?>


זה עובד מצויין כי אני יודע שבתפריט שלי יש רק שתי תתי קטגוריות (כאילו קטגוריה ראשית, תת קטגוריה ותת קטגוריה לתת קטגוריה).
עכשיו אני חייב לשדרג את זה כדי שזה יגיע למצב שזה יעבוד גם אם יהיו לי 100 תתי קטגוריות לתתי קטגוריות, כמו שרשמתי בהודעה הראשית.

אשמח אם תעזרו לי לייעל את הסריפט שלי כי אני יודע שהוא לא יעיל ככה.

אשמח אם תכוונו אותי לדרך, ותגידו לי אם מה שעשיתי עד עכשיו זה הכיוון בכלל או שאני לא בכיוון ואני סתם עובד.

שכחתי לציין את מסד הנתונים שעשיתי
אז ככה:
שם טבלה:
category
עמודות
id - מזהה הקטגוריה
id_parent - מזהה של קטגורית האב
sub_category - מציין אם יש תתי קטגוריות לקטגוריה - 0 = לא, 1 = כן
category_name - שם הקטגוריה

נערך לאחרונה ע"י Shuki142 בתאריך 25-12-2005 בשעה 19:52.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #13  
ישן 28-12-2005, 17:57
  איתי02 איתי02 אינו מחובר  
 
חבר מתאריך: 23.09.05
הודעות: 37
בתגובה להודעה מספר 12 שנכתבה על ידי Shuki142 שמתחילה ב "אבל איך אתה מבחין בין קטגוריה..."

מקווה שההסבר יהיה ברור:

קוראים את קוד הקטגוריה משמרל לימין.

המקום הראשון הוא תמיד לקטגוריה הראשית. המקום השני הוא תמיד לקטגוריה שנייה ששייכת לקטגוריה הרשומה במקום הראשון. אין צורך לרשום קטגוריות שלא קיימות.

תריץ את הדוגמה שהבאתי עם order by keye ותראה לבד את ההיררכייה - היא די ברורה.

הוספה - יש לך את הקוד של הקטגוריה שאליה אתה רוצה להוסיף. אתה שולף את כל רמה אחת של התת קטגוריות שמתחתיה, ומוסיף עוד אחת.
למשל
01
01.01
01.02
01.02.01
01.03

אתה שולף את כל התת קטגוריות באורך 5 תוים, ששני התוים הראשונים שלהם הם 01. לוקח את המספר הגדול ומוסיף 1.
חיסור מעט יותר מסובך - כי צריך גם למחוק את התת קטגוריות.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 09:20

הדף נוצר ב 0.08 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר