مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

sange_sabur

عضویت از 1394/01/11

نحوه بدست اوردن بازدید های اخیر

  • شنبه 14 آذر 1394
  • 20:33
تشکر میکنم

درود

چگونه میشود بازدید های اخیر هر کاربر را بدست اورد و نمایش داد؟

باتشکر

پاسخ های این پرسش

تعداد پاسخ ها : 10 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 آذر 1394
  • 08:48

شما می تونید جدول جداگانه ای قرار دهید و هر زمان که کاربر وارد سایت یا هر صفحه ای که می شود یک رکورد را برای کاربر ذخیره کنید .

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • یکشنبه 15 آذر 1394
  • 09:52

تشکر.ایا روشی برای استفاده از کوکی هم هست؟

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 آذر 1394
  • 10:20

کوکی احتمال پاک شدن داره و کلیه اطلاعات شما از دست میره ولی داخل دیتابیس شما گزارش کاملی از log ها رو خواهید داشت.

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • یکشنبه 15 آذر 1394
  • 13:21

ممنون از راهنمایتون.

فقط یه مورد دیگه کوئری که دریافت اطلاعات کاربر از بازدید هر صفحه رو ذخیره میکنه داخل جدول با دستورات linq به چه صورته؟

سپاس

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 آذر 1394
  • 13:41

باید جدولتون و فیلد هاش مشخص باشه تا بشه کوئری زد ولی برای مثال :

var userId = "1"; // کد کاربر مورد نظر
            var result = db.UserLogs.Count(c => c.UserID == userId && (c.CreateDate <= DateTime.Now || c.CreateDate <= DateTime.Now.AddDays(-1)));

کوئری بالا تعداد بازدید کاربر مورد نظر را از یک روز قبل تا امروز نمایش میدهد (فیلد CreateDate  در دیتابیس از نوع date گرفته شود)

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • یکشنبه 15 آذر 1394
  • 14:00

بازم تشکر فراوان.

شما الان کوئری نمایش بازدید هارو دادید.

چگونه ذخیره کردن بازدید های کاربر رو امکانش هست بگید؟همراه با جدول مورد نیازش

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • یکشنبه 15 آذر 1394
  • 14:18

این مورد به شما بستگی داره که چه فیلدهایی می خواهید در دیتابیس ذخیره شود.

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • یکشنبه 15 آذر 1394
  • 14:24

خب من میخواهم محصولاتی که کاربر در فروشگاه بازدید میکند را در بازدیدهای اخیرش مشاهده کند پس باید اطلاعات محصول مثل نام و تصویر و ای دی اون محصول باشه!!!البته فکر کنم!

کاربر سایت

sange_sabur

عضویت از 1394/01/11

  • جمعه 27 آذر 1394
  • 15:19

درود

من این قسمت رو پیاده سازی کردم ولی یه مشکلی که هست هردفعه که کاربر از محصولی بازدید میکنه یک رکورد ذخیره میشه که باعث افزونگی داده میشه ممکنه یک کاربر در یک روز چندبار یک محصول رو ببینه.

میخواهم یک بار داده ذخیره بشه و هردفعه که کاربر بازدید کرد فقط تاریخ بازدیدش در جدول اپدیت بشه .

الگوی من بر این اساس است که id کاربر و id محصول را بررسی کنیم قبل ثبت رکورد اگر وجود داشت فقط تاریخ اپدیت بشه ولی اگر قبلا این id ها ثبت نشده بود یک رکورد جدید ثبت بشه.

 

چگونه این شرط را میتونم پیاده کنم براساس این دو id ؟

لطفا راهنمایی کنید.

باتشکر

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • شنبه 28 آذر 1394
  • 08:53

بهتره یک جدول جداگانه بگیرید و این دو IP را به همراه تاریخ روز در آن ذخیره کنید و کاربر زمانی که از محصول دیدن می کند یک رکورد جدید برای آن روز بخورد و در صورتی که برای آن روز کاربر رکوردی وجود داشت ثبت نشود. متد زیر یک مثال برای انجام انی کار است :

public static void SeeMethod(int productId, string currentUserIp)
        {
            using (var db = new DBContext())
            {
                var product = db.Products.FirstOrDefault(p => p.ProductID == productId);
                var dateNow = DateTime.Now.Date;
                var isLog = db.UserProductLogs.Any(l => l.ProductID == productId && l.UserIP == currentUserIp && l.DateCreate == dateNow);
                if (!isLog)
                {
                    var log = new UserProductLogs()
                    {
                        DateCreate = DateTime.Now.Date,
                        ProductID = productId,
                        UserIP = currentUserIp
                    };
                    db.UserProductLogs.AddObject(log);
                    product.See += 1;
                    db.SaveChanges();
                }
            }
        }

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)