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

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 31-10-12, 14:36   # 1
איציק ברבי
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
הודעות: 970

איציק ברבי לא מחובר  

מהו האלגוריתם היעיל ביותר לבניית עגלה במערכת של חנות וירטואלית.

חשבתי על דבר כזה:

עמודה בטבלה users
ויהיה בה את: productID-productAmount

ולפי זה יוצג התוכן,

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

יש לכם רעיון יותר טוב?
__________________

איציק ברבי - שירות לקוחות
כתובת אתר: http://build-net.co.il/
איימל: Support@build-net.co.il
טלפון: 052-3937296.
  Reply With Quote
ישן 31-10-12, 14:45   # 2
dor77
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Jan 2008
הודעות: 1,650

dor77 לא מחובר  

תסביר שוב מה אתה מעוניין לעשות?
לא ממש הבנתי.
__________________
מתכנת php אמין ומקצועי.
מחירים נוחים!
יצירת קשר: 0544378743
  Reply With Quote
ישן 31-10-12, 15:41   # 3
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

ספציפית למה שאתה מתאר, הנה תיאור של טבלה מקשרת פשוטה.
id | user_id | item_id | amount

אפשר לעשות בזה שינויים כמובן -
אולי העמודה id תהיה מיותרת עבורך,
אולי אתה מעדיף לשמור את ה- amount בצורה אחרת (רשומה נוספת עבור כל פריט),
זה הרעיון הכללי.
  Reply With Quote
ישן 31-10-12, 15:55   # 4
M.a.T.a.N
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jan 2009
הודעות: 755

M.a.T.a.N לא מחובר  

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

בקשר למחיקה - אני לא כ"כ הבנתי אם קיימת לך טבלה של המוצרים שמשתמש רכש, אם אין לך טבלה כזאת והכוונה שלך שכל המוצרים של המשתמש נמצאים בעמודה מסויימת בטבלה של המשתמשים אז ככה:
תעשה הפרדה במסד למשל של הסימן "|" שיפריד בין מוצר למוצר, ופשוט כשהוא ירצה למחוק מוצר מסויים תעשה לולאה שתריץ את הCOUNT של הEXPLODE של הסימן "|", בתוך תעשה תנאי אם המוצר הנוכחי שרץ בלולאה לא שווה למוצר שהוא רוצה למחוק שיעדכן לתוך משתנה את המוצר, אם זה המוצר שהוא רוצה למחוק אז הוא לא יעשה כלום.
בסוף תעדכן במסד את המשתנה שקיבלת (שהוא יהיה כמובן ללא הערך של של המוצר שהוא מחק).
לתת לך קצת כיוון הקוד יראה ככה +-:
PHP קוד:
$removeID $_POST['ID']; // המוצר שהמשתמש רוצה למחוק
$allProducts $row['productID']; //הערך של העמודה בה נמצאים כל המוצרים של המשתמש (מופרדים ב"|")
$ex explode("|"$allProduct); //מפצל ע"פ |
for($i=0;$<count($ex);$i++) //מתחיל לולאה שמריצה את כל המוצרים של המשתמש
    
if($ex[$i]!=$removeID//בודק אם המוצר שאני רוצה למחוק זה המוצר שרץ כרגע בלולאה
        
$updateProduct .= $ex[$i];    //אם לא פשוט לעדכן לתוך המשתנה כדי לשמור על המוצרים שלא נמחקו

//עכשיו הקוד שמעדכן את המשתנה updateProduct למסד 
__________________
מתן, מתכנת צד שרת PHP
מייל mataname@gmail.com
  Reply With Quote
ישן 31-10-12, 16:43   # 5
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

ציטוט:
נכתב במקור על ידי M.a.T.a.N צפה בהודעה
קודם כל למה שיהיו כפילויות? בכל פעם כשמשתמש נכנס למוצר מסויים זה יעשה חיפוש במסד אם המוצר כבר בעגלת הקניות שלו,
אם כן פשוט לא יהיה ניתן לרכוש עוד פעם את המוצר (אם הוא ירצה לקנות מס' פעמים את המוצר שיהיה את זה באפשרות נפרדת).

בקשר למחיקה - אני לא כ"כ הבנתי אם קיימת לך טבלה של המוצרים שמשתמש רכש, אם אין לך טבלה כזאת והכוונה שלך שכל המוצרים של המשתמש נמצאים בעמודה מסויימת בטבלה של המשתמשים אז ככה:
תעשה הפרדה במסד למשל של הסימן "|" שיפריד בין מוצר למוצר, ופשוט כשהוא ירצה למחוק מוצר מסויים תעשה לולאה שתריץ את הCOUNT של הEXPLODE של הסימן "|", בתוך תעשה תנאי אם המוצר הנוכחי שרץ בלולאה לא שווה למוצר שהוא רוצה למחוק שיעדכן לתוך משתנה את המוצר, אם זה המוצר שהוא רוצה למחוק אז הוא לא יעשה כלום.
בסוף תעדכן במסד את המשתנה שקיבלת (שהוא יהיה כמובן ללא הערך של של המוצר שהוא מחק).
לתת לך קצת כיוון הקוד יראה ככה +-:
PHP קוד:
$removeID $_POST['ID']; // המוצר שהמשתמש רוצה למחוק
$allProducts $row['productID']; //הערך של העמודה בה נמצאים כל המוצרים של המשתמש (מופרדים ב"|")
$ex explode("|"$allProduct); //מפצל ע"פ |
for($i=0;$<count($ex);$i++) //מתחיל לולאה שמריצה את כל המוצרים של המשתמש
    
if($ex[$i]!=$removeID//בודק אם המוצר שאני רוצה למחוק זה המוצר שרץ כרגע בלולאה
        
$updateProduct .= $ex[$i];    //אם לא פשוט לעדכן לתוך המשתנה כדי לשמור על המוצרים שלא נמחקו

//עכשיו הקוד שמעדכן את המשתנה updateProduct למסד 
לא, פשוט לא.
MySQL הוא RDBMS, לא צריך לעשות דברים בצורה גרועה כזאת.

איציק, תקרא על "many to many relationship" ותקח לדוג' את המבנה שהבאתי בתגובה הראשונה שלי.
  Reply With Quote
ישן 31-10-12, 16:54   # 6
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

לא הבנתי איפה הסתבכת, בתנאי שאתה רוצה להוסיף לטבלה מוצרים, ולאפשר למחוק אותם, כך תראה הטבלה שלך:
id | uid | product | amount | price
uid = האיידי של הקונה.

מחיקה פשוטה לפי איידי, והבדיקה היא אם העמודה uid שווה לאיידי של המשתמש.
  Reply With Quote
ישן 31-10-12, 16:59   # 7
אדיר
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Mar 2008
מיקום: אשקלון
הודעות: 1,714

אדיר לא מחובר  

חיים -
העמודה price מיותרת ועלולה ליצור בעיות מיותרות, לדוגמה במקרה של שינוי המחיר של המוצר.
רצוי שהנתון ישמר במקום אחד וקבוע, בטבלת המוצרים, משם הוא ישלף על פי הצורך.
  Reply With Quote
ישן 31-10-12, 17:01   # 8
איציק ברבי
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
הודעות: 970

איציק ברבי לא מחובר  

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


מה שהוא התכוון:

טבלה בשם cart

עמודות: cardID | userID | productID | Amount

ככה זה יכול להקל על הכל.

תודה רבה חברים.
__________________

איציק ברבי - שירות לקוחות
כתובת אתר: http://build-net.co.il/
איימל: Support@build-net.co.il
טלפון: 052-3937296.
  Reply With Quote
ישן 31-10-12, 17:02   # 9
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

ציטוט:
נכתב במקור על ידי xPerfection צפה בהודעה
חיים -
העמודה price מיותרת ועלולה ליצור בעיות מיותרות, לדוגמה במקרה של שינוי המחיר של המוצר.
רצוי שהנתון ישמר במקום אחד וקבוע, בטבלת המוצרים, משם הוא ישלף על פי הצורך.
צודק שכחתי שיש טבלה למוצרים, אז אם כבר עושים את השליפה, העמודה product צריכה להיות pid
  Reply With Quote
ישן 31-10-12, 19:31   # 10
M.a.T.a.N
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jan 2009
הודעות: 755

M.a.T.a.N לא מחובר  

ציטוט:
נכתב במקור על ידי xPerfection צפה בהודעה
לא, פשוט לא.
MySQL הוא RDBMS, לא צריך לעשות דברים בצורה גרועה כזאת.

איציק, תקרא על "many to many relationship" ותקח לדוג' את המבנה שהבאתי בתגובה הראשונה שלי.
אוקיי, ומה זה קשור? אפשר להשתמש בו בצורה הזאת ותאמין לי שלא יקרה כלום...
__________________
מתן, מתכנת צד שרת PHP
מייל mataname@gmail.com
  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. הזמן כעת הוא 02:23.

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