تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 8 از 8

نام تاپيک: کمک در ادیت php

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2010
    پست ها
    35

    پيش فرض کمک در ادیت php

    یه مدت رفتیم دو سه تا ebook خوندیم در مورد php یه چیزایی یاد گرفتیم که خیلی بهم کمک کرد

    اما بازم یه سری مشکلات دارم ممنون میشم پایین حل شه این سه تا مشکل من تا کار این فایلم تموم شه

    من دارم آمار کاربران ر مثل نیوک از ویبلوتین می کشم بیرون و طبق حرف ها زیرم راهنمایی میخوام


    ************************************************** *

    برای اینکه بفهمیم جدیدترین کاربر کیه و اینکه وقتی روی اسم کاربر کلیک میشه بره به پروفایل کاربر

    من سکلت کردن جدیدترین کاربر که قبلا علی جان انجام داده بودن رو گذاشتم که این بود



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به مشکل خوردم و درست نشون نمیده مثلا 1000 تا کاربر قبل تر رو نشون میده یا چیزی شبیه این

    آمدم asc رو به desc تبدیل کردم



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حالا 10 تا کاربر قبل تر رو نشون میده یا چیزی شبیه این دقیتر از قبلی شد اما بازم به طور واقعی کاربره آخر رو نشون نمیده

    حالا ممنون میشیم این رو طوری تغییر بدید که جدیدترین کاربر رو دقیق نشون بده

    *******************************
    *******************************
    *******************************

    و با این پایینی سلکت کردم که مهمانهایی که در حال حاضر در سایت حضور دارن رو نشون بده اما با فاصله زیاد نشون میده مثلا 20 نفر هستند می زنه 300 مهمان



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    اینم ممنون میشم بگید اشتباهم کجا بوده ؟


    *******************************
    *******************************
    *******************************

    و آخریش اینه که با پایینی میخوام جمع مهمان ها و اعضای سایت که در حال حاضر در سایت هستند رو نشون بدم اما بازم با فاصله خیلی بالا نشون میده

    مثلا 10 تا مهمان داریم و 20 نفر عضو سایت جمعشون رو نشون میده 500 نفر



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


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

  2. #2
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2010
    پست ها
    35

    پيش فرض

    خوب مشکل اولیم رو خودم حل کردم به این شکل

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    فقط مونده مشکل دومی و سومی

  3. #3
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    مشکل دوم و سوم از کد نیست از منطق پشتشه. سشنها وضعیت آنی رو برنمیگردونن! هر سشن بعد از آخرین فعالیت کاربر، به اندازه طول عمر سشن فعال باقی میمونه. (در صورتی که یوزر ساین اوت نکنه و یا موقع ساین اوت رکورد یوزر از سشن حذف نشه)
    این معنیش اینه که اگر طول عمر سشن شما 30 دقیقه هست، قسمت مربوط به کاربران آنلاین که نوشتید تعداد کل رکوردهای موجود از 30 دقیقه پیش رو بر میگردونه نه اونایی رو که الان هم آنلاین هستن


    راه حلش هم اینه که شما یک فیلد با نام lastactivity به جدولتون اضافه کنید (اگر نداره) و در هر بازدید این رو با تمبر زمانی یونیکس آپدیت کنید. موقع کوئری کردن کاربران آنلاین هم یک شرط براش اضافه کنید که مثلاً کاربرانی رو که آخرین فعالیتشون از 5 دقیقه پیش به بعد بوده بشمره.

    با فرض اینکه فعالیت از 5 دقیقه (300 ثانیه) قبل رو آنلاین حساب کنیم کوئری دوم و سومتون به تریتیب اینجوری میشه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این رو هم اضافه کنم که در صورتی که تعداد بازدید (تعداد رکورد موجود در جدول سشنها) خیلی زیاد باشه، این پروسه آپیدیت کردن زمان آخرین فعالیت و مخصوصاً شمردن تعداد کاربرهای آنلاین میتونه خیلی به دیتابیس فشار بیاره
    اگر برای بازدید بالا مینویسید حتماً کوئری ها رو برای چند دقیقه کش کنید

  4. این کاربر از neopersia بخاطر این مطلب مفید تشکر کرده است


  5. #4
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2010
    پست ها
    35

    پيش فرض

    سلام خیلی ممنون جواب دادی من یک راهی دیگه هم پیدا کردم اما در آخرش به مشکل میخورم چون تا حالا تجربه اینجوری نوشتن رو نداشتم در ضمن خیلی کم از php می فهمم و هر چی دارم از سایت های خارجی یاد می گیرم و مشکلمو اونجا حل می کنم

    ببین قبلا که اینطوری سلکت می کردیم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    خوب برای اینکه مقدار رو نشون بدیم این کارو می کردیم

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    حالا راهی که من پیدا کردم طبق گفته یکی سایت php اینطوری هست

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    حالا مقدار رو باید چطوری نشون داد من تو کف همین قستم آخه فکر میکنم این سلکت کردم نه فشار میاره نه مشکلی داره همین هم که مقدار رو از row میشماره خودش می تونه کلی دلگرمی باشه برای این که مقدار همیشه واقعی هست


    اینطوری مثل قبلی ها باید مقدار رو نشون داد ؟؟؟

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    یا به شکل دیگه ممنون میشم راهنمایی کنید

  6. #5
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2010
    پست ها
    35

    پيش فرض

    من تو کف اینم که خود وی بی چطور این رو اینقد دقیق اعلام می کنه

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] : 35 (تعداد 16 عضو و 19 مهمان)

    از طریق چه کدی ما هم دقیقا مثل خود وی بی سلکت کنیم

    در ضمن من lastactivy رو توی تبل session دارم


    ببخشید این کد پایینی رو من برای لیست کردن اعضای آنلاینم استفاده می کنم خیلی دقیق هست با خود وی بی همیشه پیش میره اگه بشه شبیه این اون سه تای بالا رو نوشت خیلی خوب میشه

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  7. #6
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    حالا راهی که من پیدا کردم طبق گفته یکی سایت php اینطوری هست

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    حالا مقدار رو باید چطوری نشون داد من تو کف همین قستم آخه فکر میکنم این سلکت کردم نه فشار میاره نه مشکلی داره همین هم که مقدار رو از row میشماره خودش می تونه کلی دلگرمی باشه برای این که مقدار همیشه واقعی هست


    اینطوری مثل قبلی ها باید مقدار رو نشون داد ؟؟؟

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تابع mysql_num_rows عدد بر میگردونه. یعنی guestonline$ خوش یک عدد هست نیاز نیست مثل ارایه مقدارشو بگیرید.
    اما این کدی که نوشتید کار نمیکنه چون mysql_num_rows پارامتری که میگیره باید ریسورسی باشه که از mysql_query برگشته، نه آرایه ای که از mysql_fetch_array برمیگرده.

    کار هم میکرد پدر سرور درمیومد! چون میاد همه اطلاعات موجود در رکوردهای دیتابیس رو میخونه و میفرسته برای php اونجا هم تبدیل به آرایه میشن بعد تعداد آرایه ها شمرده میشه. این یعنی ظرف مدت کمتر از 24 ساعت هاست ساسپند میشه
    تازه اون کد که من دادم و گفتم ممکنه برای سرور سنگین بشه هیچ رکوردی رو از دیتابیس به php نمیفرستاد! فقط تعداد رکوردها رو میشمرد

    هر کی گفته سایت php اینجوریه برا خودش گفته! سورس سایت php رو میتونید توی همه صفحاتش ببینید. یه لینک برای مشاهده سورس پایین هر صفحه داره. اگر همیچین سبک کدنویسی اونجا دیدید به منم نشون بدید خیلی دلم میخواد ببینم!

    من تو کف اینم که خود وی بی چطور این رو اینقد دقیق اعلام می کنه

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] : 35 (تعداد 16 عضو و 19 مهمان)

    از طریق چه کدی ما هم دقیقا مثل خود وی بی سلکت کنیم

    در ضمن من lastactivy رو توی تبل session دارم


    ببخشید این کد پایینی رو من برای لیست کردن اعضای آنلاینم استفاده می کنم خیلی دقیق هست با خود وی بی همیشه پیش میره اگه بشه شبیه این اون سه تای بالا رو نوشت خیلی خوب میشه

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    از کجا متوجه شدید که vb دقیق نشون میده؟! من با دیتابیس vb کار کردم. بعضی جاها میاد یک پست رو توی دو سه تا جدول جدا به صورت تکراری ذخیره میکنه فقط برای اینکه از بیش از حد join کردن جدول ها و فشار زیادی روی دیتابیس جلوگیری بشه! هیچوقت نمیاد برای هر صفحه که کاربر باز میکنه یک سری همه رکوردهای جدول رو شمارش کنه

    از ظاهر این کد که نوشتید برمیاد هر کسی رو که ظرف مدت 106 دقیقه گذشته سشن داشته آنلاین معرفی میکنه! (چقدر دقیق )
    باز هم نه تنها فقط رکوردها رو نمیشمره بلکه فیلدهای خونده شده رو پاس میده به php. یعنی دوباره همون آش و همون کاسه!

    شما از همون کوئری که من نوشتم استفاده کن بعداً یه مقدار در مورد کش کردن مطالعه کن و نتیجه کوئری رو برای چند دقیقه کش کن مشکل پرفورمنس پیدا نمیکنه
    اگر هم با نوشتن قسمت php اون مشکل دارید اینجوری میشه:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. این کاربر از neopersia بخاطر این مطلب مفید تشکر کرده است


  9. #7
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2010
    پست ها
    35

    پيش فرض

    خوب من مثل اینکه مغزم هنگ کرده آقا ممنون میشم زحمتش رو خودت بکشی در این قسمت از کدم

    ببخشید واقعا ولی مخم دیگه هنگ کرده



    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  10. #8
    حـــــرفـه ای neopersia's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    3,580

    پيش فرض

    با همون سبکی که نوشته بودید اصلاح کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در ضمن vb خودش تعداد پستها و تاپیکها و یوزرها (این آخری رو مطمئن نیستم) رو در یک جدول نگهداری میکنه که هر بار اینها رو شمارش نکنه (اینم یک دلیل دیگه که شمارش زیاد ممکنه برای سرور سنگین باشه )
    نام جدولش الان یادم نیست اما قبلن که برای وی بی یه سری ماژول نوشتم یادمه که این مجموع ها رو توی دیتابیس داشت

    به جای اینکه شما اینها رو شمارش کنید بهتره که همون جدول رو پیدا کنید و تعداد رو ازش بخونید. خیلی بهینه تر میشه
    Last edited by neopersia; 06-09-2010 at 16:53. دليل: اشکال تایپی داشت درستش کردم

  11. این کاربر از neopersia بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •