PDA

View Full Version : سوال: یک ایده برای نمایش



matrixhassan
چهارشنبه 29 آذر 1391, 13:40 عصر
با سلام

یک قسمت تو سایت هست که برای تبلیغاته و وقتی کسی که می خواد تبلیغشو بده باید تاریخ شروع نمایش تبلیغش نشون داده بشه ( ایجوری طراحی شده حالا ) اگه تو جدول این قسمت تبلیغی نباشه توی قسمت نمایش تاریخ شروع نوشته میشه به محض تایید ولی آگه توی جدول اطلاعاتی باشه دو حالت وجو داره یا تبلیغ تایید شده است یا تایید نشده است ( برای نمایش ) خوب تو اینجا برای نمایش تاریخ به آگهی دهنده بعدی به مشکل برمیخوریم ، من میتونم تو این قسمت تاریخ انقضای آخرین آگهی موجود تو جدولو بگیرم و برای آگهی دهنده زمان شروع آگهیشو نشون بدم ولی اگه اون آگهی هنوز تایید نشده باشه و بعدا هم بعلت مسائلی تایید نشه اون موقع زمانی که برای آخرین آگهی دهنده نشون داده میشه غلط از آب درمیاد برای جلوگیری از این مشکلی روشی هست ؟

دوم اینکه چطور می تونم تو اینجا قسمتی برای رزرو درست کنم به اینصورت که اگه کسی بخواد آگهیش تو یه تاریخ خاصی نشون داده بشه بطونه اون تاریخو رزرو کنه ؟

با تشکر

siavashsay
چهارشنبه 29 آذر 1391, 17:19 عصر
دوست عزیز !
اگه من درست برداشت کرده باشم شما مثلا یک بنر دارید که مثلا به مدت یک هفته بفروش گذاشتید ! حالا یکی میاد و اون رو میخره و تاریخ روز انقضا هم زیرش نشون داده میشه !
حالا میخواید برای نفر بعدی که میخواد اونجا تبلیغ بده رزرو بذارید !
خوب اگه اینطور باشه شما اول باید 2 تا جدول توی دیتابیس خودتون داشته باشید !
جدول اول مثلا banner_ads و جدول دوم reserve_ads !
حالا اگه جدول اول پر بود و در حال نمایش تبلیغی بود ازون به بعد هر کسی که خواست تبلیغ بده روی لینک ثبت نام اون بنر کلیک میکنه !
سیستم شما باید تشخیص بده که جدول banners_ads چیزی داخلش هست یا نه ( که با استفاده از mysql_num_rows میشه راحت فهمید ) اگر نبود که اونجا ثبت میشه و اگر بود مشخصات تبلیغ دهنده شما میره به جدول reserve_ads و اونجا ثبت میشه !
وقتی که زمان انقضای بنر تبلیغ دهنده شما تموم شده سیستم شما باید اون رکورد رو از جدول banner_ads حذف و به ترتیب از اولین رکورد جدول reserve_ads اطلاعات رو بگیره و در جدول banner_ads ثبت کنه و اون رکورد رو از reserve_ads حذف کنه !
نمیدونم سناریو رو متوجه شدید یا نه !
اما اگر متوجه شده باشید کد نویسی اون آسون هست !
اما اگر بازم نیاز به کد نویسی داشتید بگید در خدمتم :)

matrixhassan
چهارشنبه 29 آذر 1391, 17:50 عصر
با تشکر از شما

خوب تا اینجا فهمیدم ولی مشکلی که هست اینه که وقتی من تاریخ شروع نمایش بنر سفارش دهندرو میخوام نشون بدم میرم از جدول reserve_ads تاریخ انقضای آخریت آگهی رو میگیرم و تاریخ شروع آگهی در حال درجو از اون به بعد نشون میدم تا حالا که هیچی ، فرض کنید تو این جدول 10 تا بنر تو نوبت باشن و یازدهمی در حال درج اگه از این 10 تا بنر 5 تاش تایید شده و 5 تاش تایید نشده باشه و بیاد 2 تا از این بنرها به هر دلیلی تایید نشده یعنی این بنرها از جدول reserve_ads حذف میشن و من اون تاریخی شروعی که به بنر 11 نشون دادم اشتباه میشه و مشکل بوجود می آید .
برای این مشکل چیکار کنم ؟

مسئله دوم هم مثلا من تا تاریخ 1391/10/30 بنر رزرو شده دارم و کسی میخواد بنرش از تاریخ 1391/12/1 تا 1391/12/7 نشون داده بشه و میاد تاریخو انتخاب میکنه و اطلاعات درج میشه تا اینجا مشکلی نیست من فقط موندم که این فاصله 1 ماه مابین ایندو رو چطور مدیریت یا تنظیم یا کنترل کنم ؟

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

siavashsay
چهارشنبه 29 آذر 1391, 18:24 عصر
دوست عزیز !
شما نیازی ندارید در جدول رزرو reserve_ads تاریخ انقضا رو مشخص کنید ! شما باید در اون جدول فقط مدت زمان ( مدت روز های انتخابی برای بنر ) درج بنر رو مشخص کنید ! مثلا 7 روز یا 5 روز ! سپس بعد از اینکه اون آگهی از جدول reserve_ads به جدول banner_ads انتقال پیدا کرد تاریخ اون روز انتقال رو + مدت زمان روزهای درج بنر( همون 7 یا 5 روز ) کرده و میشه تاریخ انقضای بنر !
ببینید شما هر موقع که رکوردی از جدول reserve_ads به جدول banner_ads انتقال پیدا میکنه باید تاریخ ثبت و انقضا اون رو دوباره مقدار دهی کنید !
به فرض فکر کنید ما الان در تاریه 1391/1/1 هستیم !
-- یک سفارش دارید برای 7 روز ! یعنی 1/1 تا 1/7 ! خوب این رو موقع ثبت در جدول banner_ads میریزید و تاریخ ثبت و انقضای اون رو هم ثبت میکنید !
-- حالا یکی میاد میخواد از تاریخ 1/8 تا 1/15 یک آگهی رزرو کنه ! این رکورد میره توی جدول reserve_ads و ثبت میشه !
-- یکی دیگه هم بعد اون میاد و رزرو میکنه !
حالا جدول رزرو شما اینطوری میشه !
--------
1 - نام آگهی - آدرس آگهی
2- نام اگهی 2 - آدرس آگهی 2
--------
خوب حالا وقتی که اون آگهی اول که در حال نمایش هست منقضی شد ( یعنی در تاریخ 1/7 ) شما باید مراحل زیر رو کد نویسی کنید :
1- حذف آگهی از جدول banner_ads
2- دریافت اولین رکورد از جدول reserve_ads و ثبت اطلاعات اون در جدول banner_ads و ثبت تاریخ ثبت و انقضای اون در همین موقع !
3- حذف همون رکورد از جدول reserve_ads
-------
به گزینه 2 توجه کنید ! یعنی قسمتی که باید تاریخ ثبت و انقضای اون آگهی رو در دیتابیس ثبت کنید !
با این کار یعنی از همین روز سیستم مشروع میکنه به مدت 1 هفته آگهی رو نشون میده !
به این نمونه کد توجه کنید !


mysql_query("DELETE FROM `banner_ads` WHERE `bid`='$bid'");// حدف اگهی موجود
$sql=mysql_query("SELECT * FROM `reserve_ads`");// دریافت اطلاعات از جدول رزرو
$nr=mysql_num_rows($sql);
if($nr!=0){// چک کردن جدول اگر آگهی در حال رزرو باشد
$obj=mysql_fetch_object($sql);
$bid=$obj->bid;
$time_now=date("Y-m-d");// گرفتن تاریه امروز برای ثبت شروع آگهی
mysql_query("INSERT INTO `banner_ads` (`bid`,`reg_date`) VALUES('$bid_in','$time_now')");// انتقال اگهی از جدول رزرو به جدول اگهی
mysql_query("DELETE FROM `reserve_ads` WHERE `bid`='$bid'");// حذف آگهی رزرو شده از جدول رزرو
}


این کدی که به عنوان مثال نوشتم همه چی رو نشون میده !
شما ذهنتون باید درگیر 2 چیز باشه !
1 - ثبت آگهی
2- رزرو آگهی که به ترتیب رزرو در جدول رزرو میشن !
باز هم چک کنید ببینید اگر مشکلی هست بگید

matrixhassan
چهارشنبه 29 آذر 1391, 18:58 عصر
با تشکر از شما

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

شروع آگهی از : 91/10/10 ==>15:30

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

در مورد رزرو هم با توضیحات بالا مشکل همچنان پابرجاست .یعنی اگه سفارش تبلیغ برای یک ماه بعد باشه من چجوری باید این فاصله زمانی رو مدیریت کنم که به مشکل بر نخورم ؟

MMSHFE
پنج شنبه 30 آذر 1391, 17:30 عصر
شما میتونید دو تاریخ به مشتری اعلام کنید: یکی تاریخی که درصورت تأیید تمام تبلیغهای قبلی نشون داده میشه (تحت عنوان دیرترین زمان نمایش تبلیغ شما) و یکی تاریخی که درصورت عدم تأیید تبلیغهای رزرو شده و تأیید نشده قبلی بهش اختصاص داده میشه (تحت عنوان زودترین زمان احتمالی نمایش تبلیغ شما)
اینطوری طرف برنامه ریزی میکنه که چه زمانی تبلیغش ظاهر میشه. بعد هم میتونید به نحوی کدنویسی کنید که به محض شروع نمایش یک تبلیغ، به کاربری که تبلیغ متعلق به اونه، یک ایمیل یا پیامک ارسال بشه.