• الرئيسيه
  • أدب و تاريخ
  • رياضه
  • مرح

search

Labels

  • أدب و تاريخ
  • تجاره و ربح
  • تصميم مواقع
  • رياضه
  • مرح
  • php

تحديد التاريخ بلغة php  

Posted

بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، في هذا الدرس احببت أن اجيب على تسآول كثيراً ما يطرح في المنتديات وهو عن التاريخ باللغة العربية ، واتمنى من الله التوفيق في طرح الموضوع بشكل مبسط وفي متناول الجميع ..

في البداية وكمقدمة للموضوع أود الإشارة الا أن الطريقة المشروحة في هذا الدرس تعتمد على التاريخ الميلادي ، وبالتاكيد يمكن استخدامها مع التاريخ الهجري ولكن تحتاج الى تعديل وحسابات خاصة ، وباذن الله سيتم شرحها في المستقبل .

دالة التاريخ في البي اتش بي هي Date ، ولها معاملين ( أي قيمتين لاعداد مخرجات الدالة ) ، احد المعاملين اجباري والثاني اختياري ، اما الاول وهو الاهم تعتمد عليه مخرجات التاريخ بشكل اساسي مثل ضبط السنة بخانتين أو ضبط الشهر باسم الشهر .. وغيرها ، اما المعامل الثاني فهو ما يسمى بـ ( UNIX time stamp) وهو خاص بنظام اليونكس وكيفية تخزين التاريخ فيه ، عموماً ما يهمنا هنا هو المعامل الأول وهو ما يسمى بـ ( Format String ) ، وكمثال على ما ذكرنا :


<?
$today = date(Y-m-d);
echo $today;
?>


هذا المثال سيقوم بطباعة تاريخ اليوم على الشكل التالي 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 أو بأي طريقة اخرى تراها ، الاهم انشاء الجدول .


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, '
ديسمبر');


بعد انشاء هذا الجدول يجب أن يكون لديك جدول اخر يحتوي على التاريخ المراد تحوليه ، ولنفترض أن لديك الجدول ( news ) يحتوي على الحقول ( title , date ) ويحتوي على البيانات التالية :
date title
2002-04-20
الخبر الأول
2002-04-25
الخبر الثاني
2002-05-01
الخبر الثالث


قم بانشاء الجدول :


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 ، ولعمل ذلك سنقوم باستخدام دالة تسمى Date_Format من خلال طلب لقاعدة البيانات ، نحدد من خلاله طريقة جلب البيانات ووضعها بالصورة المطلوبة .

بقي أن نذكر أننا سوف نضطر الى كتابة طلبين لقاعدة البيانات احدهما لجلب حقول العنوان ( title ) والاخر لجلب حقول التاريخ ( date ) كما يلي :


<?
$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>";
}
?>


عند تنفيذ السكربت ، سترى ما يلي :
الخبر الأول , 20 ابريل 2002
الخبر الثاني , 25 ابريل 2002
الخبر الثالث , 01 مايو 2002




في حالات كثيرة تكون كتابة السكربت السابق بهذا الشكل مسببه للكثير من المشاكل ، و خاصة عند طلب ترتيب للجدول على حسب حقل معين ، وهذه المشاكل هي في توافق البيانات مع بعضها البعض ، فلو افترضنا في مثالنا السابق أن الخبر الأول الذي يحمل التاريخ 2002-04-20 كان باسم آخر ، مثلا ( العنوان الأول ) ، وبعد اضافة حقول ترتيب لجلب البيانات كالتالي :


<?
$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>";
}
?>


ستجد أن النتائج هي :
الخبر الثالث , 20 ابريل 2002
الخبر الثاني , 25 ابريل 2002
العنوان الأول , 01 مايو 2002 وهذا بطبيعة الحال مشكلة في توافق البيانات .

ولحلها يجب أن نوافق بين الطلبين لقاعدة البيانات ، بمعنى أنه اذا رتبنا الطلب الاول حسب ( 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)
order by title";
 ?>


وبالتالي تصبح البيانات المخرجه كالتالي :
الخبر الثالث , 01 مايو 2002
الخبر الثاني , 25 ابريل 2002
العنوان الأول , 20 ابريل 2002

وهي بالتاكيد صحيحة .



 


This entry was posted at 6:38 ص . You can follow any responses to this entry through the .

0 التعليقات

<< رسالة أحدث
رسالة أقدم >>

Blog Archive

  • ▼  2009 (33)
    • ▼  مارس (30)
      • ghjghjghjghjghjghj
      • التخزين فى لغة php
      • التعامل مع العملاء
      • الدوال functions فى البى اتش بى
      • العبارات الشرطيه فى لغة البى اتش بى
      • الأوامر الشرطية
      • التكرارت والمصفوفات
      • التعامل مع الملفات والمجلدات فى لغة php
      • المتغيرات فى لغة php
      • انواع المتغيرات فى لغة php
      • تحديد التاريخ بلغة php
      • ترتيب الكود البرمجي
      • النماذج في صفحات الانترنت
      • دوال mysql لربط قواعد البيانات
      • دوال الوقت التاريخ
      • تتبع وتصيد ومنع الاخطاء
      • طريقة برمجة دليل مواقع بسيط بلغة البى اتش بى php
      • مدخل الى سكربتات php
      • مقدمة عن الـ Session
      • طريقة برمجة سجل زوار بلغة البى اتش بى php
      • مدخل الى الـsession
      • علاقة php مع mysql فى rdbms
      • مقدمه فى لغة ( PHP ) بى اتش بى
      • bbbbbb.doc
      • aaaaaaaaaaaaaaa.doc
      • العمليات الرياضيه فى php
      • الفلاتر والتأثيرات و طرق تركيبها
      • مدخل الى سكربتات php
      • مقدمة عن الـ Session
      • مقدمه فى لغة ( PHP ) بى اتش بى
    • ◄  فبراير (3)
  • ◄  2008 (3)
    • ◄  يوليو (3)

Followers

بتاع كله

بتاع كله © 2009 Official Corp Blogger Template, Created by Herro