• php
  • 6012
  • 20/3/2008
  • السلام عليكم ورحمة الله وبركاته
    تكلمنا في الجزء السادس عن كيفية عرض الأقسام وفي شرحنا هذا سنتكلم عن كيفية عرض الأقسام الفرعيه وعناوين القصص .
    قم بإنشاء ملف جديد بمجلد السكربت بإسم section.php ضع به الكود التالي :
    include('config.php'); $id = intval($_GET["id"]);
    $Sql2 = mysql_query("select id,name from story_cat where id=$id");
    $Row2 = @mysql_fetch_array($Sql2);
    if (!$Row2)
    {
    ECHO "<meta http-equiv='Refresh' content='1;URL=index.php'>";
    exit;
    }

    السطر الأول هو تضمين ملف الاتصال بقاعدة البيانات .
    السطر التالي :
    $id = intval($_GET["id"]);

    وهو لإستقبال المتغيرات من خلال الرابط الذي بالمتصفح عن طريقة المصفوفة $_GET وقمنا بتمرير المتغير على الداله intval وهي خاص بلفترة المتغير وجعله لا يقبل الا رقم فقط . ثم قمنا بكتابة استعلام يفيد بعرض القسم حسب id=$id واذا لايوجد رقم هذا القسم وعنا له شرط بحيث اذا لم يوجد يتم تحويل المتصفح للصفحة الرئيسيه ثم يتم ايقاف الصفحة section.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>$Row2[name]</title>
    </head>
    <body leftmargin='0' topmargin='0'>"; include('header.htm'); echo "<br>";
    الكود هو وسوم html خاصه بالهيدر ولاحظ ان عنوان title الصفحة سيكون $Row2[name] يعني إسم القسم . ثم ثم قمنا بتضمين الملف header.htm تبع الهيدر .
    $Sql = mysql_query("SELECT * FROM story_cat where sub=$id order by order_cat");
    $cats = mysql_num_rows($Sql); if($cats == 0){
    echo "";
    }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>
    <br>";
    }
    هذا الاستعلام مشابه تماما للاستعلام الخاص بالملف index.php تبع الاقسام الرئيسيه ولكن هذا الاستعلام خاص بجلب بيانات الاقسام الرئيسيه بحيث وضعنا شرط أنه سيتم جلب سجلات الجدول story_cat بشرط أن يكون الحقل sub=$id وأما بالاستعلام تبع الملف index.php كان sub=0 >>> هل لاحظت الفرق !! ثم البقيه تم شرحها بالدرس السابق .

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

    والآن نضع الكود التالي تحت مباشرة :
    $Sqlx = mysql_query("SELECT id,name,cat,date,vis,count,vote FROM story where cat=$id order by order_story");
    $allstorys = mysql_num_rows($Sqlx); if($allstorys == 0){
    echo "";
    }else{
    اولا قمنا بتحديد الحقول التي سيتم سحبها من الجدول تبع القصص وهي :
    id,name,cat,date,vis,count,vote

    ثم قمنا بعمل شرط للاستعلام بحيث نعرض جميع القصص بشرط cat=$id أي حقل cat تبع القصه يساوي حقل id تبع أقسام القصص . ثم قمنا بالترتيب حسب الحقل order_story . وايضا استخدمنا دالة حساب عدد السجلات الجدول
    $allstorys = mysql_num_rows($Sqlx);

    وقمنا بعمل شرط وهو اذا كان عدد القصص يساوي صفر فلن يعرض شيء واذا كان العدد اكثر من صفر فيتم عرض القصص جميعها حسب القسم الخاص بها . ثم نكتب الكود التالي اسفل شيء :
    echo "<div align='center'>
    <center>
    <table border='1' cellpadding='3' cellspacing='3' bordercolor='#E7E49F' width='90%' id='AutoNumber3' dir='rtl'>
    <tr>
    <td width='58%' bgcolor='#FCFEF0'><p align='center'>إسم القصة</p></td>
    <td width='14%' bgcolor='#FCFEF0'><p align='center'>تاريخ الإضافة</p></td>
    <td width='14%' bgcolor='#FCFEF0'><p align='center'>التصويت</p></td>
    <td width='14%' bgcolor='#FCFEF0'><p align='center'>الزيارات</p></td>
    </tr>";

    وهو فتحنا جدول ذو 4 حقول عن طريق الفرونت بيج . ثم انشأنا حلقة تكرار لنجلب جميع القصص التي بالقسم :
    while ($Rowx = @mysql_fetch_array($Sqlx))
    {
    $Rowx[name] = stripslashes($Rowx[name]);
    echo "<tr>
    <td width='58%'><img src='images/start.gif' alt='$Rowx[name]' border=0> <a href='show.php?id=$Rowx[id]'>$Rowx[name]</a></td>
    <td width='14%'><p align='center'>$Rowx[date]</p></td>
    <td width='14%'><p align='center'>$Rowx[vote]/$Rowx[count]</p></td>
    <td width='14%'><p align='center'>$Rowx[vis]</p></td>
    </tr>";
    }

    ستلاحظ وجود اسم ملف جديد وهو :
    show.php?id=$Rowx[id]

    خاص بعرض موضوع القصه سيتم شرحه لاحقا ان شاء الله .
    لاحظ ان جميع ما بداخل اقواس حلقة التكرار سيتم تكراره على حسب عدد القصص الموجوده به .
    ثم نغلق وسوم الجدول ثم نغلق الشرط :
    echo "</table>
    </center>
    </div>";
    }
    ثم نقوم بتضمين ملف footer.htm ونغلق بعد وسوم الصفحه كما فعنا بالشرح السابق :
    include('footer.htm');
    echo "</body>
    </html>";
    إنتهينا من شرح الملف section.php ولله الحمد . وسيتم شرح الملف الخاص برؤية القصة وموضوعها ان شاء الله . والله ولي التوفيق
    عدد المقيّمين 1 وإجمالي التقييمات 3
    12345