Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je utiliser $_get avec la fonction build_categories_options

Pour chaque catégorie, vous affichez deux options, une option vide et une avec les informations de la catégorie :

$category_string .= '<option value=""></option><option value="'.$category['catid'].'">'.$opt_value.'</option>';

Ceci est à l'intérieur de votre boucle. Ainsi, à chaque itération de votre boucle, deux options seront créées. Un vide et un avec votre catégorie. Je parie que vous n'en avez besoin que d'un option vide au tout début du <select> . Je pense que c'est ce que vous vouliez :

// notice we are initializing $category_string with an empty option here
$category_string = '<option value=""></option>';

function build_categories_options($parent, $categories, $level) {
    global $category_string;
    if (isset($categories[$parent]) && count($categories[$parent])) {
        $level .= " - ";
        foreach ($categories[$parent] as $category) {
            $opt_value = substr($level.$category['catname'],3);

            // removed extra empty category and put it in $category_string initialization
            $category_string .= '<option value="'.$category['catid'].'">'.$opt_value.'</option>';
            build_categories_options($category['catid'], $categories, $level);
        }
        $level = substr($level, -3);
    }
    return $category_string;
}

De plus, comme @MoeTsao l'a mentionné dans les commentaires, essayez d'éviter d'utiliser mysql_* fonctions, car leur utilisation est déconseillée par PHP. À la place, utilisez mysqli_* ou PDO .