|
|
#1
| ||||||
| ||||||
التعامل مع الملفات والمجلدات البداية وكمقدمة للموضوع أود الإشارة الا أن الطريقة المشروحة في هذا الدرس تعتمد على التاريخ الميلادي ، وبالتاكيد يمكن استخدامها مع التاريخ الهجري ولكن تحتاج الى تعديل وحسابات خاصة ، وباذن الله سيتم شرحها في المستقبل . دالة التاريخ في البي اتش بي هي Date ، ولها معاملين ( أي قيمتين لاعداد مخرجات الدالة ) ، احد المعاملين اجباري والثاني اختياري ، اما الاول وهو الاهم تعتمد عليه مخرجات التاريخ بشكل اساسي مثل ضبط السنة بخانتين أو ضبط الشهر باسم الشهر .. وغيرها ، اما المعامل الثاني فهو ما يسمى بـ ( UNIX time stamp) وهو خاص بنظام اليونكس وكيفية تخزين التاريخ فيه ، عموماً ما يهمنا هنا هو المعامل الأول وهو ما يسمى بـ ( Format String ) ، وكمثال على ما ذكرنا : [PHP]<? $today = date(Y-m-d); echo $today; ?>[/PHP] هذا المثال سيقوم بطباعة تاريخ اليوم على الشكل التالي 2002-03-13 ، ولاهمية الرموز التي يمكن استخدامها مع الـ Date ساذكر اهمها : d رقم اليوم في الشهر على شكل خانتين من 01 الى 31 . D اسم اليوم في الاسبوع على شكل 3 خانات مثل Mon أي الاثنين . g رقم الساعة في اليوم من 1 الى 12 . j رقم اليوم في الشهر من 1 الى 31 بدون وضع الصفر . m رقم الشهر في السنة على شكل خانتين من 01 الى 12 . y رقم السنة على شكل خانتين ، مثلا 02 . Y رقم السنة على شكل اربع خانات ، ومثالها 2002 . هذه من اهم الرموز لكي تتضح الصورة فقط ، ولعلنا نتطرق لها بشكل اوسع قريباً . لتحويل التاريخ الى اللغة العربية نحتاج أن ننشئ جدولاً في قاعدة البيانات ، فلذلك قم بنسخ الكود التالي والصقه في خانة Run SQL query في الـ PHPMyadmin أو بأي طريقة اخرى تراها ، الاهم انشاء الجدول . [PHP] CREATE TABLE month_name ( id tinyint(4) NOT NULL default '0', month text NOT NULL ) TYPE=MyISAM; INSERT INTO month_name VALUES (1, 'يناير'); INSERT INTO month_name VALUES (2, 'فبراير'); INSERT INTO month_name VALUES (3, 'مارس'); INSERT INTO month_name VALUES (4, 'ابريل'); INSERT INTO month_name VALUES (5, 'مايو'); INSERT INTO month_name VALUES (6, 'يونيو'); INSERT INTO month_name VALUES (7, 'يوليو'); INSERT INTO month_name VALUES (8, 'اغسطس'); INSERT INTO month_name VALUES (9, 'سبتمبر'); INSERT INTO month_name VALUES (10, 'اكتوبر'); INSERT INTO month_name VALUES (11, 'نوفمبر'); INSERT INTO month_name VALUES (12, 'ديسمبر'); [/PHP] بعد انشاء هذا الجدول يجب أن يكون لديك جدول اخر يحتوي على التاريخ المراد تحوليه ، ولنفترض أن لديك الجدول ( news ) يحتوي على الحقول ( title , date ) ويحتوي على البيانات التالية : date title 2002-04-20 الخبر الأول 2002-04-25 الخبر الثاني 2002-05-01 الخبر الثالث قم بانشاء الجدول : [PHP] CREATE TABLE news ( title text NOT NULL, date date NOT NULL default '0000-00-00' ) TYPE=MyISAM; INSERT INTO news VALUES ('الخبر الأول','2002-04-20'); INSERT INTO news VALUES ('الخبر الثاني','2002-04-25'); INSERT INTO news VALUES ('الخبر الثالث','2002-05-01'); [/PHP] بقي أن نقوم بتحويل التاريخ الى العربية ، وادراجه في صفحة PHP ، ولعمل ذلك سنقوم باستخدام دالة تسمى Date_Format من خلال طلب لقاعدة البيانات ، نحدد من خلاله طريقة جلب البيانات ووضعها بالصورة المطلوبة . بقي أن نذكر أننا سوف نضطر الى كتابة طلبين لقاعدة البيانات احدهما لجلب حقول العنوان ( title ) والاخر لجلب حقول التاريخ ( date ) كما يلي : [PHP] <? $result = mysql_query("select * from news"); $sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\" \",month_name.month,\" \",DATE_FORMAT(date,'%Y')) AS date FROM news ,month_name WHERE month_name.id = month(date)"; $result2 = mysql_query("$sql"); while ($row=mysql_fetch_array($result) and $row2=mysql_fetch_array($result2)) { $title = $row["title"]; $date = $row2["date"]; echo "$title , $date<br>"; } ?> [/PHP] عند تنفيذ السكربت ، سترى ما يلي : الخبر الأول , 20 ابريل 2002 الخبر الثاني , 25 ابريل 2002 الخبر الثالث , 01 مايو 2002 في حالات كثيرة تكون كتابة السكربت السابق بهذا الشكل مسببه للكثير من المشاكل ، و خاصة عند طلب ترتيب للجدول على حسب حقل معين ، وهذه المشاكل هي في توافق البيانات مع بعضها البعض ، فلو افترضنا في مثالنا السابق أن الخبر الأول الذي يحمل التاريخ 2002-04-20 كان باسم آخر ، مثلا ( العنوان الأول ) ، وبعد اضافة حقول ترتيب لجلب البيانات كالتالي : [PHP] <? $result = mysql_query("select * from news order by title"); $sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\" \",month_name.month,\" \",DATE_FORMAT(date,'%Y')) AS date FROM news ,month_name WHERE month_name.id = month(date)"; $result2 = mysql_query("$sql"); while ($row=mysql_fetch_array($result) and $row2=mysql_fetch_array($result2)) { $title = $row["title"]; $date = $row2["date"]; echo "$title , $date<br>"; } ?>[/PHP] ستجد أن النتائج هي : الخبر الثالث , 20 ابريل 2002 الخبر الثاني , 25 ابريل 2002 العنوان الأول , 01 مايو 2002 وهذا بطبيعة الحال مشكلة في توافق البيانات . ولحلها يجب أن نوافق بين الطلبين لقاعدة البيانات ، بمعنى أنه اذا رتبنا الطلب الاول حسب ( title ) يجب أن نفعل ذلك مع الطلب الثاني بتعديله ليصبح : [PHP] <? $sql = "SELECT CONCAT(DATE_FORMAT(date,'%d'),\" \",month_name.month,\" \",DATE_FORMAT(date,'%Y')) AS date FROM news ,month_name WHERE month_name.id = month(date) order by title"; ?> [/PHP] وبالتالي تصبح البيانات المخرجه كالتالي : الخبر الثالث , 01 مايو 2002 الخبر الثاني , 25 ابريل 2002 العنوان الأول , 20 ابريل 2002 وهي بالتاكيد صحيحة المصدر: منتديات مدينة الاحلام hgjuhlg lu hglgthj ,hgl[g]hj |
مواقع النشر (المفضلة) |
| |
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
برنامج حماية الملفات والمجلدات بكلمة سر Folder Lock v6.4.1 | همسات الامل | قسم البرامج , برامج مجانية | 0 | 18 - 04 - 2010 12:53 |
برنامج Hide Folders 2009 v3.3.17.599 لاخفاء الملفات والمجلدات | همسات الامل | قسم البرامج , برامج مجانية | 1 | 09 - 01 - 2010 19:22 |
كيفية استخدام "معالج نقل الملفات والإعدادات" في نظام التشغيل Windows XP | DreamsCity | قسم الكمبيوتر والانترنت | 0 | 11 - 09 - 2009 05:35 |
شرح كامل 100% وكل ما يتعلق بال ( Dos ) الدوس | حسين حبيب | قسم البرامج المشروحة | 2 | 02 - 10 - 2008 22:33 |
مقدمة عن الدوس | البرق | قسم البرامج المشروحة | 2 | 11 - 12 - 2007 17:05 |
Powered by vBulletin Version 3.8.7 Copyright ©2000 - 2024, Jelsoft Enterprises Ltd ترقية وتطوير: مجموعة الدعم العربى |