هل ترغب في إنشاء "شريط دليل" مثل هذا فوق صفحة الويب باستخدام php+mysql؟
-
11-09-2019 - |
سؤال
أريد إنشاء "شريط دليل" (لا أعرف اسمه الصحيح).لقد حصلت على طاولة تسمى cat
الذي يحتوي على البيانات التالية:
catid catname parentid 1 news null 2 sport 1 3 health 1 4 tennis 2 5 football 2 6 soccer 5
تستقبل صفحتي: $catid=6
, ، وأريد إنشاء:
news>sport>football>soccer
المحلول
احصل أولاً على بياناتك من قاعدة البيانات وقم ببناء مصفوفة
$q = mysql_query("SELECT catid, catname, parentid FROM cat");
$pages = array();
while($r = mysql_fetch_assoc($q)) {
$pages[$r['catid']] = array('catname' => $r['catname'], 'parentid' => $r['parentid']);
}
استخدم دالة متكررة لبناء فتات الخبز:
function build_breadcrumbs($pages, $catid) {
if(is_null($catid) || empty($catid)) return;
return build_breadcrumbs($pages, $pages[$catid]['parentid']).$pages[$catid]['catname'].' > ';
}
تقوم الدالة بإرجاع مسارات التنقل الخاصة بالوالد + مسار التنقل الحالي.استخدم الوظيفة مثل هذا:
$catid = 6;
$breadcrumbs = trim(build_breadcrumbs($pages, $catid), ' >');
echo $breadcrumbs;
أو، إذا كنت تحب المصفوفات أكثر، يمكنك إنشاء دالة مثل هذا:
function build_breadcrumbs($pages, $catid) {
if(is_null($catid) || empty($catid)) return array();
return array_merge(build_breadcrumbs($pages, $pages[$catid]['parent']), array($pages[$catid]['name']));
}
واستخدامها مع تنفجر:
$catid = 6;
$breadcrumbs = implode(' > ', build_breadcrumbs($pages, $catid));
echo $breadcrumbs;
يمنحك ذلك خيار تحديد الفاصل خارج الوظيفة.امل ان يساعد.
نصائح أخرى
يطلق عليهم فتات الخبز.هناك برنامج تعليمي هنا قد يساعد: http://www.mindpalette.com/tutorials/breadcrumbs/index.php
لا تنتمي إلى StackOverflow