בעיה בשאילתת ב MYSQL - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בעיה בשאילתת ב MYSQL


darq

Recommended Posts

שלום (:

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

ואז נתקלתי בבעיה, שלא יכולתי לפתור לבד, מקווה שתוכלו לעזור לי.

אז ככה, כל קטגוריה אצלי מיוצגת על ידי ID למשל Action=1, Comedy=5, Thriller=25

genretable.jpg

כשאני בוחר לקטלג סרט בקטגוריות מסוימות אני מכניס לתוך field הנקרא "genre" הנמצא בתוך טייבל "movie" הוא מכיל את ה id's שמייצגים את הקטגוריות.

ואז באתי לבנות פונקציה באתר שלי שאם אני לוחץ על לינק של קטגוריה, לפי ה ID שלו הוא יעשה שאילתה מתוך ה קטגוריה ויציג לי את כל הסרטים בקטגוריה

movietable.jpg

גירסה מקוצרת של ה table.

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

דוגמאות:

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

SELECT * FROM movie WHERE genre = 5

השאליתה הזאת תחזיר לי רשומה רק אם בתוך ה ג'נר יש 5 אבל אם למשל יש גם 9 זה לא יחזיר כלום.. הגיוני..

אז ניסיתי כזה דבר

SELECT * FROM movie WHERE genre LIKE '5'

אותה תוצאה

אז ניסיתי כזה דבר

SELECT * FROM movie WHERE genre LIKE '5%'

ושוב אותה תוצאה...

ואז ניסיתי כזה דבר

SELECT * FROM movie WHERE genre LIKE '%5%'

זה החזיר לי את כל השדות שיש ב 5, אבל אם יש גם 9..

הבעיה נוצרה שהוא החזיר לי שדאות שאין בהם את רק את הספרה הבודדת "5" אלא גם שדות "25"

אני מבין למה זה קורה מחזיר כל דבר שיש

%5%

מחזיר כל דבר שיש בו 5.

ניסיתי עוד משהו שבכלל לא פעל, וקראתי על זה כנראה שזה באמת לא פועל משום מה

SELECT * FROM movie WHERE genre LIKE '[25]'

זה בכלל לא מחזיר כלום, אבל עם תוספות ווילדקארד

השאלה איך אני יכול לשלוף רשומה שיש בה 5 וגם בנפרד 9 או כל ספרה אחרת..

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

השאלה אם בניתי את בסיס הנתונים שלי נכון?

אם שיטת השליפה שלי נכונה?

חשוב לציין שאת השאילתות עשיתי ב phpmyadamin ו mysql console לא שזה אמור לשנות.

ושוב, אני מקווה שהייתי ברור.. ואני מקווה שצילומי מסך יעזרו להבין מה אני רוצה..

תודה מראש.

קישור לתוכן
שתף באתרים אחרים

אתה יכול להשתמש בטבלת עזר שממפה לז'אנרים. לטבלה יהיו בדיוק שתי עמודות - עמודה אחת של מספר סרט ועמודה אחת של ז'אנר, וכל סרט יוכל להופיע כמה פעמים (פעם אחת עבור כל ז'אנר שמשויך אליו).

בשביל לשלוף את כל הסרטים השייכים לז'אנר מסוים, רק צריך join אחד.

קישור לתוכן
שתף באתרים אחרים

אתה יכול להשתמש בטבלת עזר שממפה לז'אנרים. לטבלה יהיו בדיוק שתי עמודות - עמודה אחת של מספר סרט ועמודה אחת של ז'אנר, וכל סרט יוכל להופיע כמה פעמים (פעם אחת עבור כל ז'אנר שמשויך אליו).

בשביל לשלוף את כל הסרטים השייכים לז'אנר מסוים, רק צריך join אחד.

תודה רבה אחלה פתרון, עזר לי מאוד.

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...