这是我在mysql 中的猫
cats_id cats_position cats_parentid
1 1> 0
2 1>2> 1
3 3> 0
4 1>2>4> 2
我正在尝试创建一个类似于的导航
索引>汽车>菲亚特>平底船
来自
cat=4&parent=2&position=1>2>4>
我最终得到:
索引carcarcar
我的php知识还不足以完成这段代码。你能帮帮我吗。
<?php
$position = trim($_GET['position']);
$pieces = explode(">", $position);
$i=0;
foreach($pieces as $piece){
$result = mysql_query("SELECT * FROM cats
WHERE cats_id='".$pieces[$i]."'");
while($row = mysql_fetch_array($result))
{
$piecesid[$i] = $row['cats_id'];
$piecesname[$i] = $row['cats_name'];
$piecesposition[$i] = $row['cats_position'];
}
$i++;
}
?>
<a href="index.php">Index</a>
<?php $i=0; foreach($pieces as $piece){
if($i=0)
$parent=0;
else
$parent=$placesid[$i-1];
echo '<a href="cats.php?cat='.$piecesid[$i].'&parent='.$parent.'&position='.$piecesposition[$i].'">'.$piecesname[$i];
}
您的第一个错误是这里缺少分号:
$i++;
第二个错误是回波线中$parent
之后的一个缺失点:
'&parent='.$parent.'&position='
当您开始正确缩进代码时,第三个(意外结束)错误将变得明显。省略大括号也是一种糟糕的风格,因为这会使精确查找此类错误变得更加困难。
最后:在Stackoverflow上发布时,包括完整错误消息(总是提到行号!)
我相信这就是他想要的:
- 创建一个包含id、parent_id和name字段的mysql表
- 当一个类别是另一个类别的"子"时,其他类别的parent_id字段应该相应地设置,我认为您已经有了这样的效果
- 使用此代码,通过$_GET['cat']或其他方式设置$cat
<?php
$cat=mysql_real_sescape_string($_GET['cat']);$res=mysql_query("从id='$cat'的类别中选择id、name、parent_id");$breadcrumb=array();while($category=mysql_fetch_object($res){$breadcrumb[]="<a href=''"?cat={$category->id}''">"$category->名称。"</a>";if($category->parent_id!=0){$res=mysql_query("从id='{$category->parent_id}'的类别中选择id、name、parent_id");}}echo-join(">",array_reverse($breadcrumb));
>
您在最后一个php部分中没有关闭foreach
<?php $i=0; foreach($pieces as $piece){
if($i=0)
$parent=0;
else
$parent=$placesid[$i-1];
echo '<a href="cats.php?cat='.$piecesid[$i].'&parent='.$parent'&position='.$piecesposition[$i].'>'.$piecesname[$i];
//Missing } here
?>
结尾缺少一个}。只需在最后一行后面放一个},如下所示:
echo '<a href="cats.php?cat='.$piecesid[$i].'&parent='.$parent'&position='.$piecesposition[$i].'>'.$piecesname[$i];
}
cat=4&parent=2&position=1>2>4>
然后你归档相同的:
cat=4