הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 02-03-09, 15:28   # 1
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

שאלה קטנה ב PHP...

שלום...

אני מפתח כרגע מערכת של אינדקס חברות ומוצרים.

המערכת תעבוד בצורה כזו:
אופציה להוספת קטגוריה.
אופציה להוספת חברה/מוצר(בתהליך ההוספה יהיה בחירת מספר קטגוריות לשיוך אותה החברה/מוצר).

הגולש יראה:
רשימת כל החברות ומוצרים.
אפשרות של סינון בתוצאות לפי רשימת הקטגוריות(אלו שהמנהל מוסיף בפאנל).

את רוב הדבר הזה כבר עשיתי ואין שום בעיה...
מה שאני קצת מסתבך בו זה העניין שבהוספת החברה/מוצר אני רוצה לעשות בחירה מרובה של קטגוריות...אז אני שולף מהטבלה של הקטגוריות את כל הקטגוריות ומדפיס כפלט תיבות סימון ב-V ליד כל שם של כטגוריה...אבל איך אני מכניס את זה למסד...?
ואח"כ אחרי שהכנסתי...איך בסינון תוצאות אני מציג רק את החברותמוצרים שמשוייכים לאותה קטגוריה...?


אשמח לעזרה במהרה,
מתן.
  Reply With Quote
ישן 02-03-09, 15:46   # 2
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

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

קוד:
<select name='cats' multiple='multiple'>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
ידפיס תיבת בחירה שאפשר לבחור יותר מערך אחד. לאחר מכן כשתרצה לשמור את מה שהמשתמש בחר תעשה משהו כזה:

קוד:
# Save to DB
$saved_cats = is_array($_POST['cats']) ? implode(',', $_POST['cats']) : $_POST['cats'];
ברגע שתרצה לקבל מערך עם כל מה שהמשתמש בחר אז אתה עושה את הבא, אני יוצא מנקודות הנחה ש ה row$ מכיל את כל הנתונים שהתקבלו מהמסד

קוד:
# Get from DB
$cats_array = explode(',', $row['cats']);
  Reply With Quote
ישן 02-03-09, 15:50   # 3
DvirCohen
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Dec 2007
הודעות: 151

DvirCohen לא מחובר  

דבר קטן ששכחת ואדים, זה שבתיבת בחירה מרובה שם התיבה צריך להיות עם מערך.
כלומר,
קוד:
<select name='cats[]'...
  Reply With Quote
ישן 02-03-09, 16:01   # 4
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

תודה רבה לשניכם...
ואדים...לא משמ הבנתי את עניין ההכנסה למסד נתונים...הבנתי שזה מכניס את כל מה שנבחר בבחירה מרובה לתוך מערך...אבל את המערך איך אני מכניס למסד נתונים...באיזה צורה..?
  Reply With Quote
ישן 02-03-09, 16:03   # 5
vadimg88
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
גיל: 36
הודעות: 710

vadimg88 לא מחובר  

כן זה צריך להיות cats[] שמעיד שזהו מערך ולא ערך בודד. אתה לא יכול להכניס מערך למסד נתונים זה ישבור אותו. זה או שתבצע serialize על המערך ותשמור את זה או שתבצע implode על המערך ותשמור אותו כסטרינג מופרד בפסיק או כל דבר אחר.
  Reply With Quote
ישן 02-03-09, 16:18   # 6
0xfo7d
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
הודעות: 292
שלח הודעה באמצעות ICO אל 0xfo7d

0xfo7d לא מחובר  

לא ממש הבנתי אותך ואדים...

תראה בסופו של דבר אני רוצה שבפאנל ניהול תהיה הבחירה מרובה הזו...

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

אם יהיה חברה/מוצר שבבחירה מרובה בחרתי להם 3 קטגוריות...אז בסינון תוצאות שהגולש עושה הם יופעו תחת 3 הקטגוריות האלו...

הבנת את הרעיון?
  Reply With Quote
ישן 02-03-09, 18:34   # 7
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

הפתרון של ואדים פשוט, אתה מכניס את השמות קטג' בהפרדה של פסיקים...

למשל
cat_1, cat2, cat3


כדי לחפש אתה פשוט עושה like לשדה הזה.
וכדי להציג שמות קטג' אתה עושה explode ולתשובה אתה מנתח את מה שאתה רוצה..
  Reply With Quote
ישן 02-03-09, 20:19   # 8
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

ככה לא בונים חומה.
איך אחריי זה תתחיל לשלוף את כל המוצרים שבקטגוריה 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
יש טאגים לכתבות,
במקרה שלך קטגרויות למוצרים, המימוש זהה.
__________________
FreeBSD, a *nix operating system
  Reply With Quote
ישן 03-03-09, 00:38   # 9
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

לדעתי זה מסובך וביזבוז משאבים, ובטח- לא מסודר.בחירה שלך..
  Reply With Quote
ישן 03-03-09, 01:54   # 10
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

like ברוב המקרים יעשה fulltable scan
ו join עם אינדקסים מתאימים לא.

וגם, אם יש מוצר שיושב ב100 קטגרויות, אז אתה צריך עבור כל שורה, שהתא של הקטגרויות,
יכיל 100*מס' מקסימלי של תווים בקטגוריה.
אבל רגע, אם נרצה מוצר שיושב ב200 קטגוריות, מה אז?

אז מה יותר מבזבז משאבים?
__________________
FreeBSD, a *nix operating system
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


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

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