Mysql
 sql >> Database >  >> RDS >> Mysql

Come posso usare $ _get con la funzione build_categories_options

Per ogni categoria vengono visualizzate due opzioni, un'opzione vuota e una con le informazioni sulla categoria:

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

Questo è all'interno del tuo ciclo. Quindi, ogni volta che il ciclo viene ripetuto, due verranno create opzioni. Uno vuoto e uno con la tua categoria. Scommetto che ti serve solo uno opzione vuota all'inizio del <select> . Penso che questo sia quello che volevi:

// 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;
}

Inoltre, come @MoeTsao menzionato nei commenti, cerca di evitare di usare mysql_* funzioni, in quanto il loro utilizzo è sconsigliato da PHP. Invece, usa mysqli_* o DOP .