Hola,
No lo he mirado en detalle, pero me parece que el codigo que ejecutas en cada if es el mismo, solo cambian los valores que usas para el where y los titulos, etc. Pero el codigo (funciones) es el mismo. Con lo cual no seria necesario repetirlo. Y podrias aprovecharte de los arrays que has creado al comienzo:
Código PHP:
for ($i=1;$i<6;$i++) {
if ($array_cargamos_menu[$i-1] == "1") {
// cargamos parte superior del theme del menu, inicio
$titulo_menu = $array_titulo_menu[$i-1];//nombre del menu
$theme_secciones_menu = "up";
require("html/menu_theme_dinamico_inc.php");
// cargamos parte superior del theme del menu, fin
$consulta_item_menu = mysql_query("SELECT $selecttbl_item_menu FROM $sql_tabla_item_menu WHERE mostrar='1' AND menu_numero='$i' AND orientacion='0' ORDER BY posicion ASC") or die($Err01);
while($result_item_menu = mysql_fetch_array($consulta_item_menu)) {
$titulo = $result_item_menu['titulo'];
$url = $result_item_menu['url'];
$target = $result_item_menu['target'];
$title = $result_item_menu['info'];
// cargamos parte del medio del theme del menu, inicio
$theme_secciones_menu = "medio";
require("html/menu_theme_dinamico_inc.php");
// cargamos parte del medio del theme del menu, fin
}// fin del while fech_array
// cargamos parte inferior del theme del menu, inicio
$theme_secciones_menu = "down";
require("html/menu_theme_dinamico_inc.php");
// cargamos parte inferior del theme del menu, fin
mysql_free_result($consulta_item_menu); //limpiamos memoria
}
}
Luego, personalmente, no me gusta eso de meter el require para mostrar HTML con variables. Prefiero meter el HTML en una funcion a la que le pasas como parametros las variables. Y luego simplemente llamar a esa funcion.
Luego tu problema con lo del orden es que cargas el primer array en el orden del id. Tendrias que usar un campo Posicion para poder ordenar en otro orden que no sea el de id.
Saludos.