• php
  • 5891
  • 20-3-2008
  • السلام عليكم ورحمة الله وبركاته إكاملا لسلسلة الدروس التي عملتها بخصوص كيفية عمل سكربت وكان آخر الدروس هو الجزء الخامس :
    كيف تعمل سكربت (إضافة موضوع)
    وهذا الشرح خاص بإنشاء ملف لعرض الأقسام .
    الآن بمجلد السكربت أنشيء ملف جديد بإسم index.php وضع بداخله الكود التالي :
    include('config.php'); echo "<html dir='rtl'> <head>
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
    <link rel='stylesheet' href='style.css' type='text/css'>
    <title>$namesite</title>
    </head>
    <body leftmargin='0' topmargin='0'>"; include('header.htm'); echo "<br>";
    شرح الكود : السطر الأول
    include('config.php');

    خاص بتضمين ملف الاتصال بقاعدة البيانات . الكود التالي :
    echo "<html dir='rtl'> <head>
    <meta http-equiv='Content-Type' content='text/html; charset=windows-1256'>
    <link rel='stylesheet' href='style.css' type='text/css'>
    <title>$namesite</title>
    </head>
    <body leftmargin='0' topmargin='0'>";

    وهو وسوم html عاديه مع تضمين ملف الاستايل style.css الخاص بالخطوط والانماط الخاصه بالسكربت .
    ثم ستجد متغير إسمه $namesite بين وسمي title أي عنوان الصفحة العلوي والمتغير هو إسم موقعك . ثم الكود التالي :
    include('header.htm');

    [color=FA0309]لاحظ اننا ضمنا صفحة وإسمها header.htm ويجب عليك إنشاء صفحة بنفس المسمى بداخل السكربت .[/color]
    ثم الكود التالي :
    echo "<br>";

    وهو يعني سطر جديد .

    ==============================

    ثم نضيف الاستعلام التالي تحت الكود السابق مباشرة :
    $Sql = mysql_query("SELECT * FROM story_cat where sub=0 order by order_cat");
    $cats = mysql_num_rows($Sql);
    if($cats == 0){
    echo "<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
    }else{ echo "<div align='center'>
    <center>
    <table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber2'>"; $looptable = '0';
    while ($Row = @mysql_fetch_array($Sql))
    {
    ++$looptable;
    if($looptable=="3"){
    $tr = "</tr><tr>";
    $looptable="0";
    }else{
    $tr = "";
    } $storys = mysql_num_rows(mysql_query("select id from story where cat='$Row[id]'")); if ($Row[image]){
    $imageok = "<img border='0' src='$Row[image]' alt='$Row[name]'><br>";
    }else{
    $imageok = "";
    } echo "<td width='33%' bgcolor='#FCFEF0'>
    <p align='center'><a href='section.php?id=$Row[id]'>".$imageok."$Row[name]</a><br>عدد القصص $storys</td>
    $tr";
    } echo "</table>
    </center>
    </div>";
    }
    شرح الكود : لاحظ الاستعلام التالي ويحتوي على شرط !!
    $Sql = mysql_query("SELECT * FROM story_cat where sub=0 order by order_cat");
    $cats = mysql_num_rows($Sql);
    if($cats == 0){
    echo "<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
    }else{

    والشرط هو يأتي دائما بعد الكلمة where وهنا شرطنا يقول عرض جميع السجلات الموجوده بالجدول story_cat بشرط أن يكون الحقل sub يساوي صفر . بمعنى أننا سنقوم بعرض جميع الأقسام التي التي يحمل الحقل sub تبع القسم الرقم صفر .
    لأن الرقم صفر يعني ان القسم قسم رئيسي وأما اذا كان العدد غير الصفر فيكون القسم فرعي وليس رئيسيا .
    ثم قمنا بترتيب الأقسام حسب الحقل order_cat . ثم استخدمنا دالة حساب عدد السجلات بالجدول وهي :
    $cats = mysql_num_rows($Sql);

    ثم أنشأنا بعدها شرط إذا كان عدد السجلات يساوي صفر فسيتم عرض رساله تفيد بأن لايوجد أقسام حاليا وأما اذا كان العدد أكبر من صفر فسيتم عرض الأقسام :
    if($cats == 0){
    echo "<div align='center'>عذرا .. لايوجد أقسام حاليا .</div>";
    }else{[
    ثم قمنا بفتح جدول عادي نقوم بتحريره يدويا او عن طريق الفرونت بيج وهو كالتالي :
    echo "<div align='center'>
    <center>
    <table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber2'>";
    ثم كتبنا متغير :
    $looptable = '0';
    وهو خاص في بداية عرض الأعمدة للجدول في السطر الواحد وجعلنا القيمه صفر حتى يبدأ العد من الصفر الى الأعلى . ثم فتحنا حلقة تكرار لجلب جميع السجلات بجدول الأقسام :
    while ($Row = @mysql_fetch_array($Sql))
    {
    ثم كتبنا بداخل حلقة التكرار :
    ++$looptable;
    if($looptable=="3"){
    $tr = "</tr><tr>";
    $looptable="0";
    }else{
    $tr = "";
    }

    بحيث ان المتغير ++$looptable يزداد 1 لكل مره .
    ثم قمنا بعمل شرط بحيث اذا تم عرض ثلاث أعمده بالجدول سيتم عرض البقيه بسطر جديد وهكذا الى ان ينتهي من جلب جميع السجلات .
    ثم كتبنا الاستعلام التالي :
    $storys = mysql_num_rows(mysql_query("select id from story where cat='$Row[id]'"));

    وهو خاص بعدد القصص التي داخل كل قسم بحيث جعلنا شرط الاستعلام أن الحقل cat الموجود في جدول القصص يساوي رقم حقل id الخاص بجدول أقسام القصص . ثم كتبنا شرط آخر وهو خاص بصورة القسم :
    if ($Row[image]){
    $imageok = "<img border='0' src='$Row[image]' alt='$Row[name]'><br>";
    }else{
    $imageok = "";
    }

    بحيث اذا كانت الصوره موجوده ستعرض واذا ليست موجوده لن يتم عرض اي صوره . ثم نكتب الكود التالي :
    echo "<td width='33%' bgcolor='#FCFEF0'>
    <p align='center'><a href='section.php?id=$Row[id]'>".$imageok."$Row[name]</a><br>عدد القصص $storys</td>
    $tr";
    }

    وهو خاص بحقول الجدول الذي عملناه بالفرونت البيج وجعلنا عرض الحقل الواحد يساوي 33% لأننا قمنا بتحديد عرض الحقول بالسطر الواحد يساوي 3 حقول وأما اذا كنا نريد ان نعرض 4 حقول فلابد عليك تغيير الرقم 3 الى 4 ثم تغيير عرض الحقل الى 25% يعني طريقه حسابيه بالنسبة المئويه حيث ان النسبه كامله 100% وسيتم تقسيمها على العدد تبع عرض الحقول بالسطر الواحد . ثم ستجد هناك اسم ملف جديد وهو :
    section.php?id=$Row[id]

    وهذا الملف خاص بعرض الأقسام سنتكلم عنه لاحقا ان شاء الله ولو تلاحظ ان هنا متغير id يحمل القيمة $Row[id] وهي رقم القسم الخاص به بجدول قاعدة البيانات . ثم اخذنا سطر جديد ثم كتبنا بعده المتغير $storys وهو خاص بعدد القصص بالقسم . ثم ستلاحظ وجود المتغير $tr وهو خاص بالقفز سطر جديد لحقول الجدول الذي عملناه بالفرونت بيج كلما تعدى عدد الحقول بالسطر الواحد عن العدد الذي قمنا بتحديده سابقا وهو 3 . ثم أقفلها دالة التكرار بالقوس المعكوف تبع الإغلاق :
    }
    ثم نكتب نهاية وسوم الجدول اللي عملناه بالفرونت بيج
    echo "</table>
    </center>
    </div>";
    }

    ولاحظ وجود القوس } في نهايته وهو خاص بإغلاق الشرط .

    ==============================

    ثم نكتب الكود التالي تحت مباشرة :
    include('footer.htm');
    echo "</body>
    </html>";
    قمنا بتضمين ملف footer.htm وهو خاص بذيل الصفحة وبذلك يجب عليك انشاءه بنفس مجلد السكربت وبنفس المسمى . ثم آخر شيء هو إغلاق وسوم الصفحة .
    هذا وصلى الله وسلم على سيدنا محمد عليه افضل اصلاة والسلام . وان شاء الله سيتم شرح ملف section.php الخاص بعرض عناوين القصص حسب القسم . والله ولي التوفيق
    كن أول من يقيم الموضوع
    12345