آژانس هواپیمایی
pop up

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

شروع موضوع توسط Romain_Gary ‏9 سپتامبر 2007 در انجمن PHP

  1. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سلام ،

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

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

    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."')
                    " 
    ;


    ممنون
     
  2. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    تو اصلا اشتباه میکنی که داری تاریخ رو با فرمت میریزی تو دیتابیس !
    یه int یازده کاراکتری خروجی time() رو بریز حالشو ببر !! اگه نگرفتی توضیح بدم !!
     
  3. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    موقع چاپ کردنش میخوام فرمت بندی شده باشه !

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

    مرسی شاهد

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

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    خوبی همین روش هم همینه !! موقع چاپ هر فرمتی بخوای میتونی بهش بدی ! مثلا تاریخ عضویت همین کنار رو نگاه کن ! زده feb 2005 ! حالا برو توی پروفایل و ببین زده 23-2-2005 !!
    این بخاطر اینه که تاریخ عضویت بر مبنای زمان php (فورمت خروجی time) داخل دیتابیس میره. بعد موقع خروجی گرفتن و اکو کردن هرکاری بخوای میتونی باهاش بکنی !

    /

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

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    آهان ، حالا فهمیدم :دی خب برای فرمت بندی موقع چاپ باید از printf استفاده کنم ؟ یا همون echo ? چیکارش کنم ؟
     
  6. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    اون عددرقم هایی که ریختی تو دیتابیس رو بزار تو تابع date از اونطرف فورمت بندی شده بهت تحویل میده. آرگومانها و اوقول منقلش هم اینجا هست http://php.net/date حتی timezone هم میتونی باهاش تنظیم کنی :دی

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

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    متوجه شدم :)


    دمت گرم شاهد :دی
     
  9. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    فدات :)
     
  10. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    اسم تیبل رو date نزار
     
  11. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    با منی یا با افشین؟

    /
    چرا؟
     
  12. Romain_Gary

    Romain_Gary Registered User

    تاریخ عضویت:
    ‏23 فوریه 2005
    نوشته ها:
    1,711
    تشکر شده:
    5
    سلام ، چرا ؟ مشکل پیش میاد ؟
     
  13. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    اگه بعدا بخواهی oracle کنی اره تا حدودی
     
  14. avajang.com .leftavajang.com.right
  15. jhoseinii

    jhoseinii Registered User

    تاریخ عضویت:
    ‏20 فوریه 2006
    نوشته ها:
    154
    تشکر شده:
    1
    محل سکونت:
    تهران
    منظور جناب hba اینه که کلمه ی date رزرو شده و query درست اجرا نمیشه، باگ منطقی ایجاد میشه
    نه hba ؟ [​IMG]
     
  16. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    مثالی که من تو پست 6 زدم رو دقیقا از توی سورس یکی از پروژه هام برداشتم !! میبینی که اسم فیلدش هم date هست !
    اینکه باید ساحتار دیتابیس کاملا استاندارد و درست باشه درست ! اما امکان اینکه این دیتابیس روزی به اوراکل تبدیل بشه در حد امکان پرورش سیب زمینی تو منطقه ساحلی کنار دریاست !! :blink:
     
  17. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

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

    hajagha کاربر تازه وارد

    تاریخ عضویت:
    ‏20 دسامبر 2002
    نوشته ها:
    436
    تشکر شده:
    4
    جساراتاً منظور شاهد خان این بود که عمراً پروژه افشین بشود صد میلیون رکورد که احتیاج به اوراکل داشته باشه!!
    یکی از دوستان من اوراکل کار بود، از بس هیچ کاری در این مملکت براش نبود یک ماه پیش رفت استرالیا. میگفت میرم سازمان ثبت احوال، میگم من اوراکل کارم، میگن تو رشته فرنگی یا آزاد؟!!!
     
  19. Shahed

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    data یا date ؟؟
    البته منظورم همونی بود که حاجاقا گفت !!
     
  20. alik

    alik کاربر قدیمی پرشین تولز

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

    miladmovie مدیر بازنشسته کاربر فعال

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

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

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

    Shahed Registered User

    تاریخ عضویت:
    ‏30 ژوئن 2003
    نوشته ها:
    7,175
    تشکر شده:
    21
    محل سکونت:
    mt.cgi
    یعنی هرجایی که مثلا به جای ماه 1 بخوایم خروجیمون بشه jan و جای دیگه کامه کامل ژانویه اکو بشه به همین راحتی میشه؟
    و اینکه اختلاف زمان یا به دست اوردن زمان نسبی (مثلا فلان مطلب 10 دقیقه پیش ارسال شده است) رو هم میشه باهاش حساب کرد؟


    /

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