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

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

sUP 09-01-07 21:37

חלוקת כניסות לפי יום \ שבוע \ חודש \ שנה \ כללי
 
יש לי טבלה שכוללת IP של משתמש, תאריך כניסה אחרון שלו ומספר כניסות תחת אותו IP

ואני רוצה הצעות איך ניתן להציג כניסות לא ייחודיות \ ייחודיות לפי חלוקה של
יום \ שבוע \ חודש \ שנה \ כללי (את הכללי אני יודע חח)

תודה מראש..
זה די דחוף לי 8-)

omercnet 09-01-07 21:52

יש לך תאריך, תמיין לפי תאריך

לא הבנתי מה הבעייה

meshuga 09-01-07 22:01

פונקציות שימושיות בשבילך:
strtotime
mktime

אני מקווה שהתאריך שיש לך זה "זמן לינוקס", אם לא, תשנה..
ואז תוכל לעשות בין טווח של למשל השבוע האחרון, אז אתה עושה את הטווח של כל מה שגדול מהשבוע שעבר.
או למשל חודש אפריל, אז אתה עושה מתחילת חודש אפריל (1/4/2006) עד סופו שזה (1/5/2006 פחות שניה)...ומה שבטווח זה חודש אפריל 2006..

די היה לי קשה להביא את הרעיון לנייר פה..אבל אני חושב שתבין.

sUP 09-01-07 22:34

ממ ואיך אני יכול נגיד לחשב מזה את הלא יחודיים?
(לפי הזמנים שציינתי)

כי בעיקרון יש לי X כניסות לכל IP
אבל לא ידוע מתי נערכה כל כניסה ..

ככה שזה קצת בעיה =\

RS324 09-01-07 22:48

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

בכל מקרה אתה מעדכן את הזמן לפי ה IP כשהוא נכנס לא ?

ככה שזה לא כזה משנה

אם אתה לא מעדכן
ב MYSQL אתה יכול להשתמש ב GROUP BY בשביל לסנן כניסות מאותו איפי בזמנים שונים

sUP 09-01-07 23:14

נתקלתי בעוד בעיה שוב בחישוב של הזמנים
איך אני יכול להוציא לפי חודש מהמסד?

לחישוב שנה אני משתמש ב YEAR() בשאילתה
אבל מה עם חודש?

RS324 10-01-07 01:09

ציטוט:

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

לחישוב שנה אני משתמש ב YEAR() בשאילתה
אבל מה עם חודש?

בוא אני יגלה לך סוד....

בכל מה שקשור בזמנים, אני תמיד משתמש ב TIME

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

עכשיו הפעולה היא מאד פשוטה : כל שניה קובעת, כלומר

נגיד הכנסת למסד את TIME ברגע ש IP נכנס למסד ועכשיו יש לך מספר בן 9 ספרות שאיתו אתה עובד.

עכשיו אם אני רוצה למשוך את כל האיפים שביקרו בחודש האחרון אז אני עושה משהו פשוט :
PHP קוד:

mysql_query("SELECT * FROM visitors WHERE lastvisit > '".(time() - 2592000)."'"

עכשיו אתה בטח שואל את עצמך מה זה לעזאזל 259200 ?

אני אסביר :

60 שניות בדקה
כפול 60 דקות בשעה (זה יוצא 3600)
כפול 24 ( 24 שעות ביום - זה יוצא 86400)

כלומר 86400 - זה מספר השניות שיש לנו ביום שלם
עכשיו אנחנו רוצים לחשב את זה עבור חודש אז אנחנו מכפילים את זה
ב 30 (כלומר 30 ימים)
יוצא לנו 2592000.

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

אותו דבר - לגבי שנה 86400 * 365 = שנה שלמה...


מקווה שהבנת את הרעיון.

sUP 10-01-07 03:21

זהו השתמשתי בהתחלה עם time
אבל אחרי זה קצת הסתבכתי איתו אז עברתי ל DATE

תודה :P אני אחזור ל TIME שוב חח

meshuga 10-01-07 09:38

זה היה בדיוק מה שאני אמרתי 8-* ...
בהצלחה ;)

sUP 10-01-07 16:24

ממ אבל זה בעיה
אם אני נגיד ב 23 לחודש השני
ואני מוריד 30 ימים
אז אני יהיה ב 23 לחודש הראשון

אני צריך לקחת מה ראשון לחודש עד הזמן הנוכחי
מבין? =\


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

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