הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה-השתייכות לכמה קטגוריות (https://hosts.co.il/forums/showthread.php?t=47856)

4ior 19-06-07 18:23

בעיה-השתייכות לכמה קטגוריות
 
יש לי שתי טבלאות
טבלה items
PHP קוד:

id cats_id title 

וטבלה של הקטגוריות
PHP קוד:

id pid title 

בתוך cats_id יש נתונים כאלה:
1|11|2|5|6

שהם מספרי שורות של הטבלה items

נגיד שיש לי את מספר הפריט(item)
איך אני יכול לקבל את השמות של הקטגוריות בשאילתה אחת?


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


אני יודע שזאת לא דרך טובה-אני ישמח לקבל הצעות לשינוי הטבלאות, או הוספת טבלאות...בשביל להצליח לעשות את מה ששאלתי.
תודה

בניה 19-06-07 20:28

אתה יכול לעשות ככה:
טבלה לקטגוריות עם תא id primary key נקרא לה cats
טבלה לנתונים שאמורים להשתייך לקטגוריות ללא תא שמכיל את הקטגוריה/יות. נקרא לה items
גם עם id primary key

טבלה 3 נקרא לה בשם cat_assoc
עם 3 תאים:
item_id סוג int עם index
cat_id סוג int עם index

בטבלה items נכניס את הכל כרגיל,ועל כל קטגוריה שהitem שהכנסנו שייך אליה נכניס שורה חדשה ל
cat_assoc
שב item_id יהיה הID של הitem וב cat_id יהיה הID של הקטגוריה.
על כל קטגוריה שהitem יהיה שייך אליה נכניס שורה חדשה לטבלה.

כדי לקבל את הitem מים של קטגוריה מסוימת נשתמש בשאילתא הזו:

קוד:

SELECT
        *
FROM
        cat_assoc,items
WHERE
        cat_assoc.cat_id = {$cat_id}
AND
        items.id = cat_assoc.item_id

כדי לקבל את שמות הקטגוריות שפריט שייך אליהן נשתמש בשאילתא הזו:
קוד:

SELECT
        *
FROM
        cat_assoc,items,cats
WHERE
        cat_assoc.item_id = {$item_id}
AND
        cats.id = cat_assoc.cat_id


4ior 19-06-07 20:38

סבבה תודה


כל הזמנים הם GMT +2. הזמן כעת הוא 10:35.

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