• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
همکاری برای اسکریپت مناسبت روز
#1
سلام.
من یک اسکریپت برای مناسبت روز نوشته بودم که جدولش در ادامه اومده. اما کمی اشکال داره.

جدول :
id : index,primary,autoincrement
text : varchar(250)
pdate : varchar 4
edate : varchar 4

فیلدها مشخصند فقط درباره pdate,edate بگم که تاریخ ابتدا و انتها رو مشخص میکنه البته عدد است.

مثلا اینطوری که از 1201 تا 1205 به معنی 1 اسفند تا 5 اسفند.

این درست کار میکرد تا اینکه شد 1230 تا 0105 و فرض اینکه امروز 0103 باشه.
کدی که برای select گذاشتم این بود.
کد پی‌اچ‌پی:
$sql="select * from tbl_date where pdate>=$curdate and edate<=$curdate"

خب اگه جایگذاری کنید میبینید برای این مقدار خطا میده( یعنی select) نمیکنه.
  پاسخ
تشکر شده توسط :
#2
خوب شما چرا تاریخ را به صورت تاریخ ذخیره نمیکنید؟
در ضمن به جای pdate>=$curdate and edate<=$curdate میتونید بنویسید:
کد پی‌اچ‌پی:
... $curdate BETWEEN pdate AND edate ... 
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#3
به صورت timestamp ذخیره کنید خیلی بهتر هست اینجوری اخطاری هم نمیده
در ضمن اشکال کار شما این هست که به فیلدهای عددی شما به صورت varchar هست که باید به صورت int باشه
  پاسخ
تشکر شده توسط :
#4
(۱۳۸۸ اردیبهشت ۰۲, ۱۲:۰۸ ب.ظ)میلاد نوشته: خوب شما چرا تاریخ را به صورت تاریخ ذخیره نمیکنید؟
در ضمن به جای pdate>=$curdate and edate<=$curdate میتونید بنویسید:
کد پی‌اچ‌پی:
... $curdate BETWEEN pdate AND edate ... 

سلام.

این کد برای زمانی که pdate > edate باشد جواب میده اما زمانی که قراره از 30 اسفند تا 5 فروردین سال بعد مطلبی نمایش داده بشه pdate<edate میشه. راه دیگه ای به ذهنتون نمیرسه؟
  پاسخ
تشکر شده توسط :
#5
چرا به صورت timestamp ذخیره نمی کنی؟ اینجوری به مشکلی بر نمی خوری
  پاسخ
تشکر شده توسط :
#6
(۱۳۸۸ اردیبهشت ۰۲, ۰۵:۰۱ ب.ظ)admin نوشته: چرا به صورت timestamp ذخیره نمی کنی؟ اینجوری به مشکلی بر نمی خوری

اونوقت مجبورم که سال رو هم ذخیره کنم. من میخواهم فقط ماه و روز رو ذخیره کنم بعدش هرسال توی همون روز مناسبت اون روز بیاید
  پاسخ
تشکر شده توسط :
#7
یک راه دیگه هم هست که میتونید تاریخ ها را بر اساس روز شمار سال ذخیره کنید، مثلا روز ۱ تا ۵ عید نوروز.
برای بدست آوردن تاریخ شمسی به روز شمار سال هم میتونید از تاپبع pdate به صورت زیر استفاده کنید.
کد پی‌اچ‌پی:
<?

require 'pdate.php';
echo pdate('z',pmktime(0,0,0,pdate('m'),pdate('d'),pdate('Y')));

?>

کد بالا نشون میده امروز روز چندم سال هست.
برای نمایش روز خاص هم میتونید اینجوری بنویسید مثلا:
کد پی‌اچ‌پی:
<?

require 'pdate.php';
echo pdate('z',pmktime(0,0,0,1,1,1388)); // 1
echo pdate('z',pmktime(0,0,0,2,1,1360)); // 32

?>
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#8
(۱۳۸۸ اردیبهشت ۰۴, ۰۳:۰۱ ب.ظ)میلاد نوشته: یک راه دیگه هم هست که میتونید تاریخ ها را بر اساس روز شمار سال ذخیره کنید، مثلا روز ۱ تا ۵ عید نوروز.
برای بدست آوردن تاریخ شمسی به روز شمار سال هم میتونید از تاپبع pdate به صورت زیر استفاده کنید.
کد پی‌اچ‌پی:
<?

require 'pdate.php';
echo pdate('z',pmktime(0,0,0,pdate('m'),pdate('d'),pdate('Y')));

?>

کد بالا نشون میده امروز روز چندم سال هست.
برای نمایش روز خاص هم میتونید اینجوری بنویسید مثلا:
کد پی‌اچ‌پی:
<?

require 'pdate.php';
echo pdate('z',pmktime(0,0,0,1,1,1388)); // 1
echo pdate('z',pmktime(0,0,0,2,1,1360)); // 32

?>


این عالیه
ولی pdate.php چیه؟ از قبل توی php که تعریف شده نیست!
  پاسخ
تشکر شده توسط :
#9
همون تابع تاریخ جلالای هست که تپسعه داده شده و اسمشو کردن پرشن دیت یا pdate.
کد:
http://rapidshare.de/files/46886216/pdate.php.html
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان