Für jede Kategorie zeigen Sie zwei Optionen an, eine leere Option und eine mit den Kategorieinformationen:
$category_string .= '<option value=""></option><option value="'.$category['catid'].'">'.$opt_value.'</option>';
Dies ist in Ihrer Schleife. Also jedes Mal, wenn Ihre Schleife iteriert, zwei Optionen werden erstellt. Eine leere und eine mit Ihrer Kategorie. Ich wette, Sie brauchen nur einen leere Option ganz am Anfang von . Ich denke, das ist, was Sie wollten:
// 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;
}
Versuchen Sie außerdem, wie @MoeTsao in den Kommentaren erwähnte, die Verwendung von mysqli_*
oder PDO
.