الرئيسية - الاستضافة - التصميم - حجز دومين - إشهار - حماية - اتفاقية الاستخدام - عن الموقع - طرق الدفع - اتصل بنا

  

  

روابط مفيدة  :  استرجاع كلمة المرور | طلب كود تفعيل العضوية | تفعيل العضوية | مركز رفع الصور والملفات | قوانين المنتدى

 
العودة   منتديات السعودية هوست > قسم البرمجة والتطوير > لغات مواقع الانترنت البرمجية > PHP
التسجيل البحث مشاركات اليوم اجعل كافة الأقسام مقروءة
 

رد
 
LinkBack أدوات الموضوع طرق مشاهدة الموضوع
قديم 08-17-2007, 04:43 PM   رقم المشاركة : 1
معلومات العضو
admin
Administrator
 

إحصائية العضو






 

admin غير متواجد حالياً


Lightbulb التاريخ باللغة العربية

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

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

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

كود PHP:
<? 
$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 أو بأي طريقة اخرى تراها ، الاهم انشاء الجدول .
كود 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, 'ديسمبر');
  بعد انشاء هذا الجدول يجب أن يكون لديك جدول اخر يحتوي على التاريخ المراد تحوليه ، ولنفترض أن لديك الجدول (   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 ) كما يلي :
  [left]<? 
$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>"

?>[/left]
عند تنفيذ السكربت ، سترى ما يلي :
الخبر الأول , 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>"

?>
ستجد أن النتائج هي :
الخبر الثالث , 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"

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

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






رد مع اقتباس
قديم 08-21-2007, 09:28 AM   رقم المشاركة : 2
معلومات العضو
زيادو
:: مـصـمـم اسـتـايـلات ::
 

إحصائية العضو






 

زيادو غير متواجد حالياً


افتراضي

يسلمو
يعطيك العافيه







رد مع اقتباس
قديم 02-26-2008, 07:30 AM   رقم المشاركة : 3
معلومات العضو
صـقـــــرٍ
:-: صقر المنتدى ~:-:
 

إحصائية العضو






 

صـقـــــرٍ غير متواجد حالياً


إرسال رسالة عبر مراسل MSN إلى صـقـــــرٍ

افتراضي

الله يسلم أيديك اخي العزيز

مشكور على الدروس الاكثر من رائعة

..


تحياتي لك







التوقيع

[SIZE="1"][CENTER][FONT="Tahoma"][B][COLOR="Olive"]للاستفســــار :

الرجاء ممن ضافوني على هذا الايميل [SIZE="2"][COLOR="red"]حذفة[/COLOR][/SIZE] نهائياً لانة تم [COLOR="Red"][SIZE="2"]أختراقة[/SIZE][/COLOR]

وتم التنبية حتى لا تكون انت الضحية التالية :

[email]DpT-@hotmail.com[/email][/COLOR][/B][/FONT][/CENTER][/SIZE]


[CENTER][SIZE="1"]الرجاء الاضافة على الايميل[COLOR="Red"] [SIZE="3"]الجديد[/SIZE] [/COLOR]:[/SIZE][/CENTER]

[CENTER][COLOR="Red"][email]vb@m7ab.com[/email][/COLOR][/CENTER]

[COLOR="RoyalBlue"][CENTER]وشهــر مبــارك عليـكم جميعاً [/CENTER][/COLOR]

[CENTER][IMG]http://www.look.yeah1.com/albums/userpics/73094/%21_%28123%29~0.gif[/IMG][/CENTER]

رد مع اقتباس
رد


أدوات الموضوع
طرق مشاهدة الموضوع

تعليمات المشاركة
لا تستطيع كتابة مواضيع
لا تستطيع كتابة ردود
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


الساعة الآن 09:39 PM.

 
Powered by vBulletin® Version 3.6.8, Copyright ©2000 - 2008
SEO by vBSEO 3.1.0