PDA

View Full Version : سوال: دو تا سوال مبتدی



erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 14:09 عصر
سلام خسته نباشید من دارم یک سیستم چت خصوصی مینویسم حالا به دوتا مشکل بر خوردم یکیش اینه که انلاین یا افلاین بودن طرف رو نشون بدم اومدم یه تاریخی رو هر پنج دقیقه تو دیتابیس ذخیره میکنم بعد میام چک میکنم که ایا پنج دقیقه از از اون تاریخ گذشته یا نه اگه گذشته بود یعنی طرف افلاین شده اگه نه هم انلاینه ولی نمیدونم باید چه شرطی بزارم تا بفهمم که پنج دقیقه گذشته یانه و سوال دومم اینه که اگه مثلا چت فیسبوک رو دقت کرده باشین پیام های جدید در اخر نمایش داداه میشن ولی نمیدونم چطور این کارو باید بکنم تشکر

mahdiyaran
پنج شنبه 04 اردیبهشت 1393, 15:17 عصر
اگه به صورت معمولی مینویسید و با ظرفیت کم : در سمت کاربر یه تابعی بزار که سرور رو پینگ کنه و timestamp اون رو که موقع ورود کاربر ثبت کردید دوباره آپدیت کنید و بر اساس اون محاسبات رو انجام بدید. برای سوال دوم : میتونید آخرین پیامها رو بگیرید و اگه میخواهید نتایج رو معکوس کنید (مثلا با array_reverse)

erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 15:26 عصر
خیلی ممنون از پاسختون من تاریخ رو به صورت timestamp تو دیتابیس ذخیره میکنم و هر پنج دقیقه هم اون اپدیت میکنم ولی مشکل من اینجاست که باید از کجا بفهمم که پنج دقیقه از اون تاریخ گذشته و شرط بزارم که رنگ سبز رو نشون بده تشکر

toxic_devilcs
پنج شنبه 04 اردیبهشت 1393, 17:36 عصر
سلام خسته نباشید من دارم یک سیستم چت خصوصی مینویسم حالا به دوتا مشکل بر خوردم یکیش اینه که انلاین یا افلاین بودن طرف رو نشون بدم اومدم یه تاریخی رو هر پنج دقیقه تو دیتابیس ذخیره میکنم بعد میام چک میکنم که ایا پنج دقیقه از از اون تاریخ گذشته یا نه اگه گذشته بود یعنی طرف افلاین شده اگه نه هم انلاینه ولی نمیدونم باید چه شرطی بزارم تا بفهمم که پنج دقیقه گذشته یانه و سوال دومم اینه که اگه مثلا چت فیسبوک رو دقت کرده باشین پیام های جدید در اخر نمایش داداه میشن ولی نمیدونم چطور این کارو باید بکنم تشکر

دوست عزیز به قول بچه ها peace cake :لبخند:

شما برای هر کاربر یک lastActivity گذاشتید +1 امتیاز. یعنی آخرین زمان فعالیشتون رو دارید حالا می تونید یه تابع زمان با فرمت مورد نظرتون بنویسید که شما رو به گذشته ببره :لبخند:




function myDate($secondsAgo = 0){
$date = time() - $secondsAgo;
$datetime = date("Your Format Date", $date);
return $datetime;
}



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



$tenSecAgo = myDate(10);



حالا lastActivity کاربراتون رو با 10 ثانیه عقب تر چک کن ببین تو این بازه فعالیت داشتن یا نه . اگر که داشتن سبزشون کن :لبخند: اگرم نه که قرمزته :لبخند: (این آخری شوخی بود)

سوال دوم هم من زیاد احل چت نیستم بیشتر توضیح بدید در خدمتیم.

erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 17:43 عصر
خیلی ممنون از پاسخت toxic_devilcs (http://barnamenevis.org/member.php?228279-toxic_devilcs) عزیز در مورد سوال دومم باید بگم که مثلا فرض کن ما دوتا پیام داریم به نام پیام یک و دو حالا یکی میاد یه پیام دیگه اضافه میکنه به نام پیام سه که باید بعد ازیام دوم بیاد یعنی بجای این که از بالا پیام ها اضافه بشه باید از پایین اضافه بشه و پیام یک بالا تر از همه باشه تشکر

toxic_devilcs
پنج شنبه 04 اردیبهشت 1393, 17:47 عصر
خیلی ممنون از پاسخت toxic_devilcs (http://barnamenevis.org/member.php?228279-toxic_devilcs) عزیز در مورد سوال دومم باید بگم که مثلا فرض کن ما دوتا پیام داریم به نام پیام یک و دو حالا یکی میاد یه پیام دیگه اضافه میکنه به نام پیام سه که باید بعد ازیام دوم بیاد یعنی بجای این که از بالا پیام ها اضافه بشه باید از پایین اضافه بشه و پیام یک بالا تر از همه باشه تشکر

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

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

erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 17:51 عصر
من پیام هارو با ای جکس میفرستم و تو دیتابیس ذخیره میکنم

toxic_devilcs
پنج شنبه 04 اردیبهشت 1393, 19:04 عصر
من پیام هارو با ای جکس میفرستم و تو دیتابیس ذخیره میکنم

خب عالیه ببین دوست عزیز آیا شما تاریخ ها رو هم ذخیره می کنید ؟

erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 19:16 عصر
بله ذخیره کردم

toxic_devilcs
پنج شنبه 04 اردیبهشت 1393, 19:25 عصر
ببینید برای نمایش اطلاعات فرستاده شده در Main Form یعنی قسمتی که شما پیغام ها رو میبینید . مطمئنا چون از Ajax استفاده می کنید یکسری داده ارسال میشه و طبق همون داده ارسالی Query گرفته میشه . شما فقط کافیه اون Query رو پیدا کنید و اینجا بزارید تا من براتون اصلاحش کنم .

اگر هم خودتون بلدید بسم الله. اینطوری که من میگم اصلاحش کنید:

- تو اون Query یک ORDER BY بزارید که تایم ارسالی پیغامتون باشه و اون رو بارامتر DESC نزولی مرتب سازی کنید.

erfannorouzi
پنج شنبه 04 اردیبهشت 1393, 19:34 عصر
خب منم همین کارو کردم ولی مشکل اینجاست که من میخوایم ده تا از اخرین پیام هارو نشون بدم و پیام های جدید پایین تر از بقیه باشه و پیام های قدیمی بالاتر

toxic_devilcs
پنج شنبه 04 اردیبهشت 1393, 21:13 عصر
یعنی 10 پیغام از یه مبحاثه خاص از قبل منظورتونه ؟؟؟

mahdiyaran
جمعه 05 اردیبهشت 1393, 10:30 صبح
خب منم همین کارو کردم ولی مشکل اینجاست که من میخوایم ده تا از اخرین پیام هارو نشون بدم و پیام های جدید پایین تر از بقیه باشه و پیام های قدیمی بالاتر

من که گفتم :

اگه به صورت معمولی مینویسید و با ظرفیت کم : در سمت کاربر یه تابعی بزار که سرور رو پینگ کنه و timestamp اون رو که موقع ورود کاربر ثبت کردید دوباره آپدیت کنید و بر اساس اون محاسبات رو انجام بدید.
برای سوال دوم : میتونید آخرین پیامها رو بگیرید و اگه میخواهید نتایج رو معکوس کنید (مثلا با array_reverse)