![]() |
שאלה קטנה ב PHP...
שלום...
אני מפתח כרגע מערכת של אינדקס חברות ומוצרים. המערכת תעבוד בצורה כזו: אופציה להוספת קטגוריה. אופציה להוספת חברה/מוצר(בתהליך ההוספה יהיה בחירת מספר קטגוריות לשיוך אותה החברה/מוצר). הגולש יראה: רשימת כל החברות ומוצרים. אפשרות של סינון בתוצאות לפי רשימת הקטגוריות(אלו שהמנהל מוסיף בפאנל). את רוב הדבר הזה כבר עשיתי ואין שום בעיה... מה שאני קצת מסתבך בו זה העניין שבהוספת החברה/מוצר אני רוצה לעשות בחירה מרובה של קטגוריות...אז אני שולף מהטבלה של הקטגוריות את כל הקטגוריות ומדפיס כפלט תיבות סימון ב-V ליד כל שם של כטגוריה...אבל איך אני מכניס את זה למסד...? ואח"כ אחרי שהכנסתי...איך בסינון תוצאות אני מציג רק את החברותמוצרים שמשוייכים לאותה קטגוריה...? אשמח לעזרה במהרה, מתן. |
למידע מסוג זה עדיף תשתמש בתיבת בחירה מרובה ולא בתיבות סימון. לדוגמא:
קוד:
<select name='cats' multiple='multiple'> קוד:
# Save to DB קוד:
# Get from DB |
דבר קטן ששכחת ואדים, זה שבתיבת בחירה מרובה שם התיבה צריך להיות עם מערך.
כלומר, קוד:
<select name='cats[]'... |
תודה רבה לשניכם...
ואדים...לא משמ הבנתי את עניין ההכנסה למסד נתונים...הבנתי שזה מכניס את כל מה שנבחר בבחירה מרובה לתוך מערך...אבל את המערך איך אני מכניס למסד נתונים...באיזה צורה..? |
כן זה צריך להיות cats[] שמעיד שזהו מערך ולא ערך בודד. אתה לא יכול להכניס מערך למסד נתונים זה ישבור אותו. זה או שתבצע serialize על המערך ותשמור את זה או שתבצע implode על המערך ותשמור אותו כסטרינג מופרד בפסיק או כל דבר אחר.
|
לא ממש הבנתי אותך ואדים...
תראה בסופו של דבר אני רוצה שבפאנל ניהול תהיה הבחירה מרובה הזו... ובאתר עצמו(מה שהגולש הרגיל יראה) יופיעו כל החברות והמוצרים +תיבת סינון תוצאות....ולפי בחירת הגולש...זה יציג לו את כל החברות והמוצרים שמשוייכים לאותה קטגוריה שהגולש בחר... אם יהיה חברה/מוצר שבבחירה מרובה בחרתי להם 3 קטגוריות...אז בסינון תוצאות שהגולש עושה הם יופעו תחת 3 הקטגוריות האלו... הבנת את הרעיון? |
הפתרון של ואדים פשוט, אתה מכניס את השמות קטג' בהפרדה של פסיקים...
למשל cat_1, cat2, cat3 כדי לחפש אתה פשוט עושה like לשדה הזה. וכדי להציג שמות קטג' אתה עושה explode ולתשובה אתה מנתח את מה שאתה רוצה.. |
ככה לא בונים חומה.
איך אחריי זה תתחיל לשלוף את כל המוצרים שבקטגוריה X? עם LIKE וחבריו? לדעתי הדרך היא: 3 טבלאות: טבלת קטגוריות טבלת מוצרים טבלה שמקשרת קטגוריות למוצרים ( קשר רבים-לרבים ) השליפה עם JOIN. עוד על זה: http://en.wikipedia.org/wiki/Database_normalization http://www.tonymarston.net/php-mysql/many-to-many.html ופה: http://www.phpro.org/tutorials/Taggi...And-MySQL.html יש טאגים לכתבות, במקרה שלך קטגרויות למוצרים, המימוש זהה. |
לדעתי זה מסובך וביזבוז משאבים, ובטח- לא מסודר.בחירה שלך..
|
like ברוב המקרים יעשה fulltable scan
ו join עם אינדקסים מתאימים לא. וגם, אם יש מוצר שיושב ב100 קטגרויות, אז אתה צריך עבור כל שורה, שהתא של הקטגרויות, יכיל 100*מס' מקסימלי של תווים בקטגוריה. אבל רגע, אם נרצה מוצר שיושב ב200 קטגוריות, מה אז? אז מה יותר מבזבז משאבים? |
כל הזמנים הם GMT +2. הזמן כעת הוא 10:43. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ