تكلمنا في الجزء السادس عن كيفية عرض الأقسام وفي شرحنا هذا سنتكلم عن كيفية عرض الأقسام الفرعيه وعناوين القصص .
قم بإنشاء ملف جديد بمجلد السكربت بإسم 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 ولله الحمد .
وسيتم شرح الملف الخاص برؤية القصة وموضوعها ان شاء الله .
والله ولي التوفيق
الدرس الاخير الثامن
تكلمنا في الجزء السادس عن كيفية عرض الأقسام وفي شرحنا هذا سنتكلم عن كيفية عرض الأقسام الفرعيه وعناوين القصص .
قم بإنشاء ملف جديد بمجلد السكربت بإسم 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 ولله الحمد .
وسيتم شرح الملف الخاص برؤية القصة وموضوعها ان شاء الله .
والله ولي التوفيق