يكفي جدول واحد للاقسام كلها
اسم الجدول للأقسام الرئيسية aqsam
ويحتوي على :
cat_id
qsm اسم القسم الرئيسي
description الوصف
parent_id القسم الأب ::: Default 0
طبعا الحقل parent_id يكون 0 في حالة الاقسام الرئيسية ولايتبع احد
parent_id يحمل id للقسم الذي يحويه
وبـ Recursion بسيط تستطيع الحصول على جميع الاقسام
كود PHP:
function categories( $id = 0,$catPrefix = '')
{
global $DB;
$selectCats = mysql_query("Select * from aqsam where parent_id = '$id' ");
$arr = array();
while ($Cat = mysql_fetch_assoc($selectCats))
{
$arr[$Cat['id']] = $catPrefix . $Cat['qsm'] ;
$arr+= categories($Cat['id'] , $Cat['qsm'].' » ');
}
return $arr;
}
ستحصل من خلال الفنكشن على مصفوفة :
كود:
Array
(
[1] => القسم الأول
[2] => الثاني
[3] => الثاني » متفرع من الثاني
......
)
الان بسهولة تقدر تكون select من هالمصفوفة بالفورايش
كود PHP:
$cats = categories();
echo "<select name=\"cat\">";
foreach( $cats as $id => $name)
{
if($_GET['cat']==$id) $selected = "selected=\"selected\""; else $selected ="";
echo "<option value=\"$id\" $selected>$name</option>";
}
echo "</select>";
$_GET['cat'] تححده من الرابط بحيث يكون هو العنصر المحدد في القائمة المنسدلة ...
هذي ترى على السريع اتمنى وفقت فيها ..
تحياتي