الدرس السادس عشر في لغة php

الدرس السادس عشر في لغة php


النتائج 1 إلى 7 من 7

الموضوع: الدرس السادس عشر في لغة php

  1. #1

    افتراضي الدرس السادس عشر في لغة php

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

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

    دالة التاريخ في البي اتش بي هي 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 أو بأي طريقة اخرى تراها ، الاهم انشاء الجدول .
    كود:
    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 ) كما يلي :
    كود 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>"

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

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


  2. #2

    افتراضي رد: الدرس السادس عشر في لغة php

    ما شاء الله عليكـ يا أستآذ
    اليوم الدرس جداً سهل .
    ربي يعطيكـ العافيه
    تم حفــظ الدرس
    تحياتي

  3. #3

    افتراضي رد: الدرس السادس عشر في لغة php

    السلام عليكم
    بارك الله فيك
    على المجهود الحلو ......
    هل هذا آخر درس أخي ؟؟
    هههههههههههههه
    لقد قمت بتحميل صفحات الدروس و أستافعل معك أخي بعد الاطلاع عليها
    .

  4. #4

    افتراضي رد: الدرس السادس عشر في لغة php

    اقتباس المشاركة الأصلية كتبت بواسطة CheVale3D مشاهدة المشاركة
    السلام عليكم
    بارك الله فيك
    على المجهود الحلو ......
    هل هذا آخر درس أخي ؟؟
    هههههههههههههه
    لقد قمت بتحميل صفحات الدروس و أستافعل معك أخي بعد الاطلاع عليها
    .
    لا اخي هذا ليس اخر درس
    بقي تقريبا 7 دروس ان شاء الله

  5. #5

    افتراضي رد: الدرس السادس عشر في لغة php

    اقتباس المشاركة الأصلية كتبت بواسطة Abdullhadi JC مشاهدة المشاركة
    لا اخي هذا ليس اخر درس
    بقي تقريبا 7 دروس ان شاء الله

    بارك الله فيك على المجهود الكبير
    في انتظار الدروس الباقية ...
    هههههههههه لكن يجب علي دراسة الدروس السابقة ..

  6. #6

    افتراضي رد: الدرس السادس عشر في لغة php

    مشكووووووووووور يعطيك الف العافيه
    يالغلا تقبل مروري
    تعال ودق اشتراك مع قناتي لبى قلبك

    http://www.youtube.com/user/mishry20?feature=mhee

  7. #7

    افتراضي رد: الدرس السادس عشر في لغة php

    الله يعافيك اخي الكريم
    مشكور على المرور ^_*

المواضيع المتشابهه

  1. [الدرس السادس] شرح معنى السيف مود
    بواسطة ASDELY-ScOrPiOn في المنتدى دورة اختراق المواقع
    مشاركات: 106
    آخر مشاركة: 12-16-2015, 11:58 AM
  2. الدرس السادس في لغة php
    بواسطة Abdullhadi JC في المنتدى لغات برمجة المواقع
    مشاركات: 2
    آخر مشاركة: 05-15-2012, 04:29 PM
  3. الدرس السادس: الوضع الآمن
    بواسطة ASDELY-ScOrPiOn في المنتدى اختراق المواقع والسيرفرات
    مشاركات: 167
    آخر مشاركة: 04-18-2012, 01:12 PM
  4. الدرس السادس - رفع شل من لوحة الادارة
    بواسطة الشريف 515 في المنتدى منتدى الإختراق العام
    مشاركات: 3
    آخر مشاركة: 01-23-2012, 08:01 PM
  5. *-*الدرس السادس((المصفوفات array))*-*
    بواسطة ابو مشاري في المنتدى منتدى الإختراق العام
    مشاركات: 1
    آخر مشاركة: 01-23-2012, 02:31 AM

المفضلات

أذونات المشاركة

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