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

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

hellsdevil 01-05-09 16:51

עגלת קניות
 
אהלן,
יש בהרבה אתרים "עגלת קניות" ואפשר להוסיף מוצרים ובסוף לעשות משהו עם הרשימה ( לשלוח למייל, לבצע סליקה וכו' )

אני אשמח לדעת את הקונספט הכללי של זה, סשנים או קוקיז או מה שלא יהיה.

תודה מראש |קורץ|

DorOaki 01-05-09 16:59

אני הייתי עושה ככה:
טבלה במסד שהולכת ככה:
ITEM_ID | USERNAME

כל הוספת מוצר לעגלה, שיוסיף לטבלה הזאת את הID של המוצר ואת השם משתמש שהוסיף אותה לעגלה.
בשליפה אתה שולף את הID של המוצר שהוא הוסיף לעגלה ששווה לID שיש בטבלה של כל המוצרים מאותו שם משתמש..

בערך משהו כזה:
שם המוצר: סבון
ID : 5
הוסף לעגלה

שם המוצר: מגבת
ID: 3
הוסף לעגלה

קוד:
PHP קוד:

if( isset( $_POST['5'] ) )
{
   
$id $_POST['5'];
   
$username $_COOKIE['username'];
   
mysql_query("INSET INTO `table_name` (`ITEM_ID`,`USERNAME`) VALUES ('$id', '$username')";
   return 
$query;
   print 
"נוסף לעגלה בהצלחה";


בשליפה:
PHP קוד:

$query mysql_query("SELECT * FROM `table_name` WHERE `USERNAME` = '{$_COOKIE['username']}'");
$item mysql_fetch_array$query );
$query1 mysql_query("SELECT * FROM `item_table_name` WHERE `ID` = '{$item['ITEM_ID']}'");
$nums mysql_num_rows$query1 );

if( 
$nums == )
{
   print 
"אין לך מוצרים בעגלה";
}
else
{
   while( 
$show mysql_fetch_array$query1 ) ) 
   {
      print 
"שם המוצר: " $show['item_name'] . "<br />";
      print 
"מחיר: " $show['item_price'] . "<br />";
   }


עדיף להשתמש במקרה הזה בתגי בחירה..(select box) אבל אי אפשר להכין פה דף HTML אז השתמשי בֹדוגמא הזאת ..
מקווה שעזרתי

Deadly Mushroom 01-05-09 16:59

ציטוט:

נכתב במקור על ידי hellsdevil (פרסם 712301)
אהלן,
יש בהרבה אתרים "עגלת קניות" ואפשר להוסיף מוצרים ובסוף לעשות משהו עם הרשימה ( לשלוח למייל, לבצע סליקה וכו' )

אני אשמח לדעת את הקונספט הכללי של זה, סשנים או קוקיז או מה שלא יהיה.

תודה מראש |קורץ|

ללא התחברות? כי אם כן, גם אני מעוניין לדעת !

Deagly 01-05-09 17:05

אם זה ללא התחברות יש כמה דרכים:
או ע"י קוקיז/ SESSION לשמור את ה ID של המוצר,
אבל מכיוון שבקוקיז יש מקום מוגבל במידע שהוא יכול להכיל אפשר לעשות בעזרת השיטה הבאה:
כל אחד שנכנס לאתר מקבל מספר רנדומלי שהוא ID של המשתמש והוא נשמר בתוך קוקיז
אחרכך במסד ברגע שהמשתמש בחר את המוצר,
למסד נכנס ה ID של המוצר וה ID שבקוקיז של המשתמש..

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

כמובן שבמקום מס' רנדומלי אפשרי לעשות לפי אייפי (שהאייפי זה המזהה של המשתמש)..
אבל אם האייפי השתנה לבנאדם זה יכול ליצור קצת בעיה אם מישהו אחר יקבל את האייפי שלו..
לכן עדיף עפ"י מס' רנדומלי (עדיף כמה שיותר ארוך כדי שלא יהיה מצב שזה יחזור על עצמו)

Deadly Mushroom 01-05-09 17:07

ציטוט:

נכתב במקור על ידי Deagly (פרסם 712311)
אם זה ללא התחברות יש כמה דרכים:
או ע"י קוקיז/ SESSION לשמור את ה ID של המוצר,
אבל מכיוון שבקוקיז יש מקום מוגבל במידע שהוא יכול להכיל אפשר לעשות בעזרת השיטה הבאה:
כל אחד שנכנס לאתר מקבל מספר רנדומלי שהוא ID של המשתמש והוא נשמר בתוך קוקיז
אחרכך במסד ברגע שהמשתמש בחר את המוצר,
למסד נכנס ה ID של המוצר וה ID שבקוקיז של המשתמש..

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

כמובן שבמקום מס' רנדומלי אפשרי לעשות לפי אייפי (שהאייפי זה המזהה של המשתמש)..
אבל אם האייפי השתנה לבנאדם זה יכול ליצור קצת בעיה אם מישהו אחר יקבל את האייפי שלו..
לכן עדיף עפ"י מס' רנדומלי (עדיף כמה שיותר ארוך כדי שלא יהיה מצב שזה יחזור על עצמו)

ואיך לעשות שאחרי התחברות כל המוצרים ישארו אצלו?

Deagly 01-05-09 17:12

ציטוט:

נכתב במקור על ידי Deadly Mushroom (פרסם 712313)
ואיך לעשות שאחרי התחברות כל המוצרים ישארו אצלו?

הוא מחובר תמיד.. (עד שהקוקיז נמחק, שזמן המחיקה אתה בעצם יכול לקבוע)
ברגע שהוא נכנס לאתר הוא מקבל מספר רנדומלי שזה בעצם ה ID שלו שנשמר בתוך קוקיז,
בעת שליחת הזמנה או מה שלא תרצה..
אתה שולף מהמסד את כל המוצרים ע"י השוואה בין ה ID שבמסד לבין ה ID שבקוקיז שלו..

hellsdevil 01-05-09 17:18

מצאתי מדריך נחמד לעגלת קניות עם סשן
http://v3.thewatchmakerproject.com/j...-shopping-cart

Slash 01-05-09 18:40

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

האמת שזה משתנה משפה לשפה כי בC# לדוגמא יש ממש אובייקטים שאתה יכול להוסיף אליהם והם עובדים באמת עם סשן והם נשמרים ממש נוח , אני זוכר שפעם בניתי בתור תרגיל בכיתה עגלת קניות זה היה באמת פשוט .

yard2010 05-05-09 17:49

יש session id או sid שזה מזהה ייחודי לכל גולש. אני לא סגור על זה אם הוא נוצר לבד או צריך ליצור אותו. כעיקרון אפשר ליצור טבלה של ID ו-SID וככה לעשות את השליפה, ונניח להוסיף עמוד של זמן ולעדכן אותה כל הזמן, ותוך כדי השאילתא למחוק את כל הנתונים שהזמן שלהם קרה לפני X זמן (כדי שלא יווצר מסד מפלצתי)

intercooler3819 05-05-09 22:29

בגדול מה שאני הייתי עשוה זה או לקמבן מערך לJSON ולאחסן אותו בתוך COOKIE או SESSION וPHP (פחות מעדיף)

בשיטה הראשונה את הכל אתה יכול לבצע בJS, אפילו ללא PHP (ברמה של העגלה עצמה) כי JSON ניתן בקלות לעבודה עם JS וJS עובדת עם COOKIES מעולה גם כן

כאשר תרצה לשחק עם המידע מעבר להוסיף עוד מוצרים/למחוק/להגדיל כמות וכו' זה כבר עבודה עם PHP - תקרא על הפונקציה json_decode()
במיוחד כאשר הפרמטר השני הוא TRUE (ממליץ לעבוד ככה - פשוט אןי סיבה לפרוס לעצם כאשר אפשר לעבוד עם מערך)

בהצלחה
אם יש לך בעיות אתה מוזמן להגיב ואשמח לעזור (:


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

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