2010-08-19 95 views
-2

我有这个脚本循环制作一个类别树。但我希望它显示用户在下面的示例中选择的特定类别。在旁边注意脚本循环为了建立到类别的URL链接。PHP&MySQL问题

我想我想说的是,我只是想知道如何显示特定的类别和完整的网址?

这里是例子。

Found In Category: Books & Authors, Html, Web design 

这是我的PHP脚本。

function make_list ($parent = 0, $parent_url = '') { 
    global $link; 
    echo '<ol>'; 

    foreach ($parent as $id => $cat) { 
     $url = $parent_url . $cat['url']; 
     echo '<li><a href="' . $url . '" title="' . $cat['category'] . ' Category Link">' . $cat['category'] . '</a>';   

     if (isset($link[$id])) { 
      make_list($link[$id], $url); // $url adds url value to sub categories 
     }    
     echo '</li>'; 
    }  
    echo '</ol>'; 
} 

$mysqli = mysqli_connect("localhost", "root", "", "sitename"); 
$dbc = mysqli_query($mysqli,"SELECT * FROM categories ORDER BY parent_id, category ASC"); 
if (!$dbc) { 
    print mysqli_error(); 
} 

$link = array(); 

while (list($id, $parent_id, $category, $url) = mysqli_fetch_array($dbc)) { 
    $link[$parent_id][$id] = array('category' => $category, 'url' => $url); 
} 

make_list($link[0]); 
+1

我不知道我理解的问题。这里你的问题到底是什么?也许你可以更新你的问题的标题,因为它目前没有真正描述问题。 – 2010-08-19 08:39:52

+0

我会怎么称呼我的标题?我如何显示特定类别及其完整网址? – helloWORLD 2010-08-19 08:42:36

+0

如果您尝试更新问题以更清晰地反映您确切的问题是什么,也许会更好。之后,制作相应的标题也将变得更加容易。 – 2010-08-19 08:49:29

回答

0

如果你不想显示所有类别,但只有一个(如果我理解正确的)变化:

$dbc = mysqli_query(
    $mysqli,"SELECT * FROM categories ORDER BY parent_id, category ASC" 
); 

$cat = mysqli_real_escape_string($_POST['selectedCategory']); 
$dbc = mysqli_query(
    $mysqli, 
    "SELECT * FROM categories WHERE category = '$cat' ORDER BY parent_id, category ASC" 
); 

编辑:缩进的可读性

编辑2:

对于多个类别,你会使用

WHERE category IN('x', 'y', 'z') 

请纠正我,如果你没问别的东西:)

+0

这将弄乱我的类别URL我如何修复URL。 – helloWORLD 2010-08-19 08:55:21

+0

我真的不知道如何,因为该网址是你选择的每一行的一部分,但也许这就是我...没有任何样本数据我不认为我有任何更多的想法 – edorian 2010-08-19 08:58:46

+0

每一行都有一部分的url&cat = 2'等等 – helloWORLD 2010-08-19 09:01:05