برگزیده های پرشین تولز

وارد کردن تاریخ توی دیتابیس

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
سلام ،

من یه فیلد دارم داخل دیتابیس مای اسکیو ال که از نوع تاریخه ...

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

PHP:
$date = date("m-j-Y") ;

مشکل اینجاس که از طریق کد زیر که اقدام میکنم ! تاریخ توی جدول 0000 - 00 - 00 زده میشه !

ممنون میشم راهنمایی کنید

PHP:
$admin_set_data = "
  insert into admin(id,admin_username,admin_password,email,website,date) values
                ('1','admin','admin','','','".$date."')
                " ;



ممنون
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
تو اصلا اشتباه میکنی که داری تاریخ رو با فرمت میریزی تو دیتابیس !
یه int یازده کاراکتری خروجی time() رو بریز حالشو ببر !! اگه نگرفتی توضیح بدم !!
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
تو اصلا اشتباه میکنی که داری تاریخ رو با فرمت میریزی تو دیتابیس !
یه int یازده کاراکتری خروجی time() رو بریز حالشو ببر !! اگه نگرفتی توضیح بدم !!
موقع چاپ کردنش میخوام فرمت بندی شده باشه !

آره یکم توضیح میدی راجع بهش :) نوع فیلد رو بذارم int ? بعدش از time() همینطوری استفاده کنم یا آرگوان داره توش ؟

مرسی شاهد

پ ن : راستی اون پرل رو قرار بود آپ کنی برام :دی
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
موقع چاپ کردنش میخوام فرمت بندی شده باشه !

آره یکم توضیح میدی راجع بهش :) نوع فیلد رو بذارم int ? بعدش از time() همینطوری استفاده کنم یا آرگوان داره توش ؟

مرسی شاهد

پ ن : راستی اون پرل رو قرار بود آپ کنی برام :دی
خوبی همین روش هم همینه !! موقع چاپ هر فرمتی بخوای میتونی بهش بدی ! مثلا تاریخ عضویت همین کنار رو نگاه کن ! زده feb 2005 ! حالا برو توی پروفایل و ببین زده 23-2-2005 !!
این بخاطر اینه که تاریخ عضویت بر مبنای زمان php (فورمت خروجی time) داخل دیتابیس میره. بعد موقع خروجی گرفتن و اکو کردن هرکاری بخوای میتونی باهاش بکنی !

/

آره. یه int تعریف کن تو دیتابیس و time رو بدون آرگومان بریز توش !
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
خوبی همین روش هم همینه !! موقع چاپ هر فرمتی بخوای میتونی بهش بدی ! مثلا تاریخ عضویت همین کنار رو نگاه کن ! زده feb 2005 ! حالا برو توی پروفایل و ببین زده 23-2-2005 !!
این بخاطر اینه که تاریخ عضویت بر مبنای زمان php (فورمت خروجی time) داخل دیتابیس میره. بعد موقع خروجی گرفتن و اکو کردن هرکاری بخوای میتونی باهاش بکنی !

/

آره. یه int تعریف کن تو دیتابیس و time رو بدون آرگومان بریز توش !
آهان ، حالا فهمیدم :دی خب برای فرمت بندی موقع چاپ باید از printf استفاده کنم ؟ یا همون echo ? چیکارش کنم ؟
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
آهان ، حالا فهمیدم :دی خب برای فرمت بندی موقع چاپ باید از printf استفاده کنم ؟ یا همون echo ? چیکارش کنم ؟
اون عددرقم هایی که ریختی تو دیتابیس رو بزار تو تابع date از اونطرف فورمت بندی شده بهت تحویل میده. آرگومانها و اوقول منقلش هم اینجا هست http://php.net/date حتی timezone هم میتونی باهاش تنظیم کنی :دی

یه چیزی تو این مایه ها:
اینجا من اون عدد رقم هارو دارم از یه فیلد با اسم date میخونم :دی
PHP:
date('M d y' , $query1[date] );
 

Romain_Gary

Registered User
تاریخ عضویت
23 فوریه 2005
نوشته‌ها
1,801
لایک‌ها
6
سن
38
اون عددرقم هایی که ریختی تو دیتابیس رو بزار تو تابع date از اونطرف فورمت بندی شده بهت تحویل میده. آرگومانها و اوقول منقلش هم اینجا هست http://php.net/date حتی timezone هم میتونی باهاش تنظیم کنی :دی

یه چیزی تو این مایه ها:
اینجا من اون عدد رقم هارو دارم از یه فیلد با اسم date میخونم :دی
PHP:
date('M d y' , $query1[date] );
متوجه شدم :)


دمت گرم شاهد :دی
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
اگه بعدا بخواهی oracle کنی اره تا حدودی
 

jhoseinii

Registered User
تاریخ عضویت
20 فوریه 2006
نوشته‌ها
154
لایک‌ها
1
محل سکونت
تهران
منظور جناب hba اینه که کلمه ی date رزرو شده و query درست اجرا نمیشه، باگ منطقی ایجاد میشه
نه hba ؟
10.gif
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
منظور جناب hba اینه که کلمه ی date رزرو شده و query درست اجرا نمیشه، باگ منطقی ایجاد میشه
نه hba ؟
10.gif
مثالی که من تو پست 6 زدم رو دقیقا از توی سورس یکی از پروژه هام برداشتم !! میبینی که اسم فیلدش هم date هست !
اینکه باید ساحتار دیتابیس کاملا استاندارد و درست باشه درست ! اما امکان اینکه این دیتابیس روزی به اوراکل تبدیل بشه در حد امکان پرورش سیب زمینی تو منطقه ساحلی کنار دریاست !! :blink:
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
در اراکل رزرو شده نمیشه Data گذاشت
ولی چرا کاری نداره من برنامه هام رو با 3 خط ادیت می تونم رو اراکل بالا بیارم
دستورات sql فرقی نمی کنه توش
 

hajagha

کاربر تازه وارد
تاریخ عضویت
20 دسامبر 2002
نوشته‌ها
453
لایک‌ها
4
سن
47
امکان اینکه این دیتابیس روزی به اوراکل تبدیل بشه در حد امکان پرورش سیب زمینی تو منطقه ساحلی کنار دریاست !! :blink:

در اراکل رزرو شده نمیشه Data گذاشت
ولی چرا کاری نداره من برنامه هام رو با 3 خط ادیت می تونم رو اراکل بالا بیارم
دستورات sql فرقی نمی کنه توش
جساراتاً منظور شاهد خان این بود که عمراً پروژه افشین بشود صد میلیون رکورد که احتیاج به اوراکل داشته باشه!!
یکی از دوستان من اوراکل کار بود، از بس هیچ کاری در این مملکت براش نبود یک ماه پیش رفت استرالیا. میگفت میرم سازمان ثبت احوال، میگم من اوراکل کارم، میگن تو رشته فرنگی یا آزاد؟!!!
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
در اراکل رزرو شده نمیشه Data گذاشت
ولی چرا کاری نداره من برنامه هام رو با 3 خط ادیت می تونم رو اراکل بالا بیارم
دستورات sql فرقی نمی کنه توش
data یا date ؟؟
البته منظورم همونی بود که حاجاقا گفت !!
 

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
تو اصلا اشتباه میکنی که داری تاریخ رو با فرمت میریزی تو دیتابیس !
یه int یازده کاراکتری خروجی time() رو بریز حالشو ببر !! اگه نگرفتی توضیح بدم !!
نوع int اینجا بهتره که varchar یا char باشه :) باطول 11 :)
هر دو نوع int و varchar درست عمل می کنند ولی از نظر بهینه سازی دیتابیس نوع int را با طول 11 رقم بهتره زمانی استفاده کنید که اعدادی به بزرگی 11 رقم را برای محاسبات عددی لازم دارید و چون اینجا عدد خروجی تابع time درمحاسبات عددی قرار نیست استفاده بشود بهتره که بصورت یک رشته یازده حرفی در نظر بگیریم .
 

miladmovie

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
1,939
لایک‌ها
3
سن
39
هان !
با اینکه من خودم هم همین جوری(int) اطلاعات ام رو توی دیتابیس می ریختم !
ولی اگر یک پروژه دستم بیاد که ارزشش رو داشته باشه می رم روی نوع DATE
۱.برای اینکه رنج بیشتری رو ساپورت می کنه (The supported range is ‘1000-01-01’ to ‘9999-12-31’. MySQL displays DATE values in ‘YYYY-MM-DD’ format )

۲.با دست بازتری می تونید کوئری ازش بگیرید

۳.با کلاس تره !!! (حرفه ای تره )
 

Shahed

کاربر قدیمی پرشین تولز
تاریخ عضویت
30 ژوئن 2003
نوشته‌ها
7,270
لایک‌ها
34
محل سکونت
mt.cgi
هان !
با اینکه من خودم هم همین جوری(int) اطلاعات ام رو توی دیتابیس می ریختم !
ولی اگر یک پروژه دستم بیاد که ارزشش رو داشته باشه می رم روی نوع DATE
۱.برای اینکه رنج بیشتری رو ساپورت می کنه (The supported range is ‘1000-01-01’ to ‘9999-12-31’. MySQL displays DATE values in ‘YYYY-MM-DD’ format )

۲.با دست بازتری می تونید کوئری ازش بگیرید

۳.با کلاس تره !!! (حرفه ای تره )
یعنی هرجایی که مثلا به جای ماه 1 بخوایم خروجیمون بشه jan و جای دیگه کامه کامل ژانویه اکو بشه به همین راحتی میشه؟
و اینکه اختلاف زمان یا به دست اوردن زمان نسبی (مثلا فلان مطلب 10 دقیقه پیش ارسال شده است) رو هم میشه باهاش حساب کرد؟


/

استاد ! پیرو مذاکرات دیشب یه حرکتی قرار بود انجام بدی :D
 
بالا