2010-08-19 4 views
-2

J'ai ce script qui boucle pour faire un arbre de catégorie. Mais je veux qu'il affiche des catégories spécifiques qu'un utilisateur choisit comme dans l'exemple ci-dessous. Sur une note de côté, le script boucle afin de construire le lien URL vers la catégorie.PHP & MySQL question

Je suppose que ce que j'essaie de dire est que je veux juste savoir comment afficher des catégories spécifiques et leur URL complète?

Voici l'exemple.

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

Voici mon script 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

Je ne suis pas sûr que je comprends la question. Quel est exactement votre problème ici? Et peut-être pourriez-vous mettre à jour le titre de votre question, car il ne décrit pas vraiment un problème. –

+0

qu'est-ce que je nommerais mon titre? Comment puis-je afficher des catégories spécifiques et leur URL complète? – helloWORLD

+0

Peut-être que c'est mieux si vous essayez de mettre à jour la question pour refléter plus clairement votre problème. Après cela, il sera également plus facile de créer un titre correspondant. –

Répondre

0

Si vous ne souhaitez pas afficher toutes les catégories, mais un seul (si je comprends bien) le changement:

$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" 
); 

Edit: pour une meilleure lisibilité indentations

Éditer2:

Pour plusieurs catégories que vous souhaitez utiliser

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

S'il vous plaît corriger mon si vous avez demandé quelque chose d'autre :)

+0

Cela va gâcher mes catégories URL comment puis-je corriger l'URL. – helloWORLD

+0

Je ne vois pas vraiment comment l'url fait partie de chaque rangée que vous sélectionnez mais peut-être c'est juste moi ... sans données d'échantillon je ne pense pas avoir plus d'idées – edorian

+0

chaque rangée a une partie de l'url '& cat = 2' et ainsi de suite – helloWORLD