عرض مشاركة واحدة
عضو سوبر نشيط
تاريخ التسجيل: Mar 2003-
#22 (permalink)  

السلام عليكم

أولاً : بخصوص إضافة رابط لكل قسم :

كود PHP:

<?php

include("config.php");

// ?????? ??????? ????????
$sql mysql_query("SELECT * FROM cat");
$num mysql_num_rows($sql);
for(
$i=1;$i<=$num;$i++)
{

$row mysql_fetch_array($sql);
$cat_title $row[name];
$cat_id    $row[cat_id];
echo
"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a><br>";
$sql1 mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 mysql_num_rows($sql1);
for(
$z=1;$z<=$num1;$z++)
{
        
$row1 mysql_fetch_array($sql1);
        echo
"&nbsp;&nbsp;&nbsp;- <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a><br>";
        }
}


?>
و في صفحة العرض سأختار ملف show_child_cat.php لأنه نفس الفكرة في show_cat.php
كود PHP:

<?php

include("config.php");
$sql mysql_query("SEELCT * FROM cat WHERE cat_id=$cat_id");
$row mysql_fetch_array($sql);
$sql1 mysql_query("SELECT * FROM child_cat WHERE child_id=$child_id AND cat_id=$cat_id");
$row1 mysql_fetch_array($sql1);

echo
"أهلاً و سهلاً في المنتدى الفرعي $row1[name] .. المنتدى الرئيسي $row[name]";
// غلق الاتصال
?>

ثانياً : بخصوص الحذف :

سأقوم بإضافة رابط الحذف في نفس صفحة العرض :

كود PHP:

<?php

include("config.php");

// ?????? ??????? ????????
$sql mysql_query("SELECT * FROM cat");
$num mysql_num_rows($sql);
for(
$i=1;$i<=$num;$i++)
{

$row mysql_fetch_array($sql);
$cat_title $row[name];
$cat_id    $row[cat_id];
echo
"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a> <a href=del_cat.php?cat_id=$cat_id>حذف</a><br>";
$sql1 mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 mysql_num_rows($sql1);
for(
$z=1;$z<=$num1;$z++)
{
        
$row1 mysql_fetch_array($sql1);
        echo
"&nbsp;&nbsp;&nbsp;- <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a>
        <a href=del_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>حذف</a>
<br>"
;
        }
}


?>

و في صفحة الحذف ساختار ملف del_child_cat.php

كود PHP:

<?php

include("config.php");

$sql mysql_query("DELETE FROM child_id WHERE child_id=$child_id AND cat_id=$cat_id ");

// غلق الاتصال
?>

ثالثاً : بخصوص التعديل أو التحرير

سأقوم بإضافة رابط التعديل في نفس صفحة العرض :


كود PHP:

<?php

include("config.php");

// ?????? ??????? ????????
$sql mysql_query("SELECT * FROM cat");
$num mysql_num_rows($sql);
for(
$i=1;$i<=$num;$i++)
{

$row mysql_fetch_array($sql);
$cat_title $row[name];
$cat_id    $row[cat_id];
echo
"+ <a href=show_cat.php?cat_id=$cat_id>$cat_title</a> <a href=del_cat.php?cat_id=$cat_id>حذف</a>
<a href=edit_cat.php?cat_id=$cat_id>تحرير</a>
<br>"
;
$sql1 mysql_query("SELECT * FROM child_cat WHERE cat_id=$cat_id");
$num1 mysql_num_rows($sql1);
for(
$z=1;$z<=$num1;$z++)
{
        
$row1 mysql_fetch_array($sql1);
        echo
"&nbsp;&nbsp;&nbsp;- <a href=show_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>$row1[name]</a>
        <a href=del_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>حذف</a>
<a href=edit_child_cat.php?child_id=$row1[child_id]&cat_id=$cat_id>تحرير</a>
<br>"
;
        }
}


?>
في صفحة edit_child_cat.php يجب عليك ملاحظة الآتي : أن معلومات القسم الفرعي يجب أن تظهر في الفورم ،
أما في القائمة المنسدلة للأقسام الرئيسية يجب أن تظهر جميع الأقسام الرئيسية و نعمل selected للقسم الرئيسي الحالي :

كود PHP:

<?php

include("config.php");

$sql mysql_query("SELECT * FROM cat");
$num mysql_num_rows($sql);

$sql1 mysql_query("SELECT * FROM child_cat WHERE child_id=$child_id AND cat_id=$cat_id");
$row1 mysql_fetch_array($sql1);

echo
"<form action=edit1.php method=post>";
echo
"اسم القسم الفرعي : <input type=text name=edit_child_name value='$row1[name]'>";
echo
"<br>";

echo
"<select name=edit_cat_id>";

for(
$i=1;$i<=$num;$i++)
{
$row mysql_fetch_array($sql);
if(
$cat_id == $row[cat_id])
{
$selected "selected";
}
else
{
$selected "";
}
echo
"<option value=$row[cat_id] $selected>$row[name]</option>";
}


echo
"<select>";
echo
"<br>";
echo
"<input type=submit value=تحرير>";
echo
"</form>";

//غلق الاتصال
و الآن التعديل سيكون بسيط ، في صفحة edit1.php
كود PHP:

<?php
include("config.php");

$sql mysql_query("UPDATE child_cat SET name='$edit_child_name' , cat_id=$edit_cat_id");

// غلق الاتصال
?>
يمكنك إضافة بعض التطويرات للسكريبت :
1 - التأكد من خلو القيم النصية من أي نص ضار بقاعدة البيانات
2 - التأكد من أن القيم الرقمية هي رقمية بالفعل
3 - التأكد من أن جميع البيانات المطلوبة معبأة
4 - إضافة وصف - صورة لكل قسم
5 - استخدام نظام الإشراف على كل قسم
4 - يمكن جعل جميع الأقسام بجدول واحد سواء الرئيسية أو الفرعية مع بعض التغييرات في حقول الجدول

كود PHP:
Create Table cat(
cat_id int not null primary key auto_increment,
name varchar(50not null,
is_cat int not null,
is_child int not null,
main_cat_id int not null
); 
هذا تصوري للجدول :
- الحقل is_cat تضع القيمة 1 إن كان قسماً رئيسياً و القيمة 0 إن لم يكن
- الحقل is_child تضع القيمة 1 إن كان قسماً فرعياً و القيمة 0 إن لم يكن
- الحقل main_cat_id هو الـcat_id للقسم الرئيسي إن كان القسم فرعياً


و أشكر الأخ b_happy على إضافته


تحياتي
Dr.no






Dr.no غير متواجد حالياً   قديم 26-08-2006, 07:04 PM
رد مع اقتباس