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

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

0xfo7d 07-06-09 21:17

PHP | איך אתם מציעים לי לבנות את זה?
 
שלום...
אני מפתח כרגע מערכת ניהול לקוחות ומוצרים....

מטרת המערכת:
לעשות רשימת מוצרים.
להוסיף לקוח. ולהגדיר לו אילו מוצרים הוא רכש ומה התוקף של כל מוצר ביחס אליו.

מה ז"א?

נניח אבי קנה אחסון למשך שנה החל מהיום...אז התוקף הוא 07/06/2010.

אך אם הוא קנה אחסון לשנה לפני חצי שנה אז התוקף שהכנסתי לו לפני חצי שנה(כשהוספתי אותו) הוא 07/01/2010.

בשני המקרים המוצר ששייכתי הוא אותו מוצר: "אחסון שנתי".

הלקוחות הם שונים, והתוקף שהכנסתי לגביי אותו המוצר הוא שונה.

לכל לקוח יהיה ניתן לשייך מוצרים ללא הגבלה.

מה שכבר עשיתי זה החלק הפשוט:
ניהול מוצרים, ניהול לקוחות.

השאלה שלי היא כזו:
איך אתם מציעים לעשות את העניין של הגדרת מוצרים+תוקף לכל אחד מהם לכל לקוח ולקוח...?

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


תודה רבה על העזרה,
מתן.

Shillo 07-06-09 21:57

אין פה איזה אלגוריתם שצריך לכתוב (אם בא לך תכתוב, בזבוז זמן), זו בסה"כ פונקציה פשוטה.
מבחינת התוקף לכל לקוח מציע לך לקרוא על:
http://www.php.net/manual/en/function.getdate.php
זה מחזיר לך מערך שמכיל את כל המידע של הזמן והתאריך העכשווים במערכת בייצוגים מספריים וטקסטואלים .
לאחר מכן, אתה יכול להכניס את התאריך שהכניס הלקוח לתוך מערך ובעצם ככה תוכל לבדוק ולהכניס נתונים בהתאם לשני המערכים.
אם תצטרך עזרה בקוד אז בכיף, רצית כיוון פשוט.

intercooler3819 07-06-09 22:10

אז ככה

יש לך טבלה לניהול סוגי מוצרים שהיא משהו כמו
id | name | expire_time_in_days | slug

הסלאג זה סתם אולי תצטרך
ניים - שם
expire_... - זמן בימים (מספר כלומר נגיד 10) שיקח לדבר הזה לפוג מהיום התחלה שלו

יש לך עוד טבלאת יחס בין מוצרים ליוזרים לסוגי מוצרים:
id | product_type_id | user_id | start_time | notes
שמכילה ID
ID של הסוג מוצר מהטבלה הקודמת
USER_ID של המשתמש שהוספת לו את המוצר
START_TIME תאריך ב UNIX TIME STAMP של היום בו המוצר מתחיל לפעום
NOTES סתם הערות כלליות

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

זה נראה מסובך - אבל זה לא

0xfo7d 08-06-09 12:03

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

בכל אופן אשמח לשמוע עוד הצעות...אין לדעת מה אחרים חושבים:)

0xfo7d 08-06-09 12:24

יש אפשרות להוסיף לתאריך של היום 10 ימים נגיד???

נניח היום ה 08/06/2009
אז אם אני מוסיף 30 יום זה גם מקפיץ את ה"יום" וגם את ה"חודש"...?

יש משהו כזה...?

OrPol 08-06-09 12:32

יש לך מוצרים, יש לך לקוחות. עכשיו תקשר ביניהם
תעשה טבלאת רכישות
ID | UserID | ProductID | ExpireDate

מן הסתם כשאתה מכניס רכישה חדשה, תכניס את הID של המשתמש ואת הID של המוצר, ותוקף תכניס ידנית, או תשתמש בסקריפט.
בהצלחה

עריכה: לא שמתי לב לתגובה של ניצן. הוא צודק במה שהוא אומר.

intercooler3819 08-06-09 12:53

ציטוט:

נכתב במקור על ידי 0xfo7d (פרסם 719863)
יש אפשרות להוסיף לתאריך של היום 10 ימים נגיד???

נניח היום ה 08/06/2009
אז אם אני מוסיף 30 יום זה גם מקפיץ את ה"יום" וגם את ה"חודש"...?

יש משהו כזה...?

כן זה מה שכתבתי למעלה

אתה סופר את הזמן עם UNIX TIME STAMP (אתה יכול לקבל אותו בPHP עם time() )
וזה מחזיר לך את הזמן הנוכחי בשניות מאז הראשון לראשון 1970

ואז יש לך פונקציות כמו DATE שמקבלות פורמט וטייםסטאמפ לדוגמא:
date("d/m/y", time() );


בחישובים עצמם תעבור רק עם UNIX TIMESTAMP ובהדפסה ללקוח עם DATE או פונקציה אחרת שמייצרת משהו קריא מהמדידת שניות הזו

0xfo7d 08-06-09 13:34

תראה מה המטרה בגדול?
לשלוח מייל ללקוח כהתראה על כך שהמוצר פג תוקפו.

אם אני רוצה לעשות שזה ישלח שבוע לפני התראה...אז איך אני מחסיר מהתאיך של היום 7 ימים...? לעשות מינוס 7 זה לא טוב בגלל שאם היום ה 5 לחודש נניח....אז התאריך יהיה כביכול

-2/06/2009
(ה"יום" יהיה מינוס?!)

מה אתה אומר, אפשר לחסר 7 ימים...?

עריכה:

מצאתי:
PHP קוד:

date('j/n/Y'strtotime('-1 week')) 

תודה לכולם...
המערכת עובדת:)


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

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