Bread Crumbs Nav Links,Recursive Array,PDO

时间:2014-01-05 23:57:59

标签: php pdo

我有一个数据库表,其中有两列用于页面URL和URL父项,如下所示:

网址|亲 动物| (空值) 哺乳动物|动物 老虎|哺乳动物

我正在尝试将其转换为PDO。这是原始脚本:

$TopnavTable = 'gz_life';
$TopnavName = 'Taxon';

function get_path($node, $TopnavTable, $TopnavName) {
$result = mysql_query('SELECT Parent FROM ' . $TopnavTable . ' WHERE ' . $TopnavName .  '="'.$node.'";');

 $row = mysql_fetch_array($result);
 $path = array();
 if ($row['Parent']!='') {
   $path[] = $row['Parent'];

  $path = array_merge(get_path($row['Parent'], $TopnavTable, $TopnavName), $path);
  }
 return $path;
}

switch ($MyPage)
{
 case 'ChildPage':
 $TopNav = str_replace('Carnivora', '', $TopNav);
 break;
 default:
 break;
}

$mypath = get_path($MyURL, $TopnavTable, $TopnavName);
$MyLink = $mypath;
$MyLink = str_replace('Life', '', $MyLink);
$MyDisplay = $mypath;
for($i=0;$i<count($mypath);$i++){
$TopNav = "<a href=\"".$MyLink[$i]."\"> ".$MyDisplay[$i]."</a>&nbsp;&gt;";
$That = array('<a href="Life">', '"> ', '&gt;', '<a href="');
$This = array('<a href="/Life/">', '">', '&gt; ', '<a href="/Life/');
$TopNav = str_replace($That, $This, $TopNav);

有人刚刚帮我升级了类似的查询,其中父子关系基于URL。例如,URL MySite / Topics / Washington / Governor应该产生面包屑导航链接,如下所示:

主题&gt;华盛顿&gt;调速器

这是代码:

$TopnavTable = 'pox_topics';
$TopnavName = 'URL';

function get_path($dbh,$node,$TopnavTable, $TopnavName) {
 $stmt = $dbh->prepare("SELECT name FROM $TopnavTable WHERE $TopnavName = ?");
 $stmt->bindValue(1,$node);
 $stmt->execute();
 $stmt->setFetchMode(PDO::FETCH_ASSOC);  
 $row = $stmt->fetch();  
 $path = array_merge(get_path($pdo,$row['Parent'], $TopnavTable, $TopnavName), $path);
 return  $path ;  
}

$Path2 = explode("/", $path);
$arrlength=count($Path2);
$html ='<a href="/Topics">'.$Path2[0].'</a> > ';//First Member
for($x=1;$x<$arrlength-1;$x++)  {//Between first & last
 $html .= '<a href="/Topics/'.$Series.''.$Path2[$x].'">'.$Path2[$x].'</a> > ' ;
}
$html .= '<span class="navHere"><b>'.$Path2[$x].'</b></span>'; //Last member
$html = str_replace('/'.$MySection.'/'.$MySection.'', '/'.$MySection.'', $html);
echo $html ;

我被建议阅读分层数据@ http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/事实上,我认为这是我在顶部发布的原始脚本所依据的。

无论如何,我以为我可以修改上面的PDO脚本,使其适用于我的分层数据库表,但我一如既往地一直在罢工。

谁能告诉我需要改变什么? (我删除了$ Path2 = explode(“/”,$ path);当然,但我从未取得任何进展。)

0 个答案:

没有答案