bueno lo que quiero es ordenar un menu.
Ejemplo.
Tengo este menu.
--
Nombre - orden
------------------------------------------------
Inicio --------- 1
Servicios----- 2
Otro ---------- 3
otro mas ---- 4
Lo que hace esta funcion es si yo quiero subir el link "Otros" en el orden me cambiaria Otro con el orden 2 y servicios con el orden 3.
el problema es que el orden de servicios si me cambia a 3 pero el de Otros se guarda un -1 que alparecer es lo que resto en la funcion.
alguna idea de que puede ser. Gracias a todos los que me puedan ayudar.
Esta es la funcion para subir un nivel en el menu.
Código PHP:
function menu_up()
{
if ($this->session->userdata('nombre') != ""):
$data['lang'] = $this->uri->segment(3);
$query = $this->db->query("SELECT MIN(orden) FROM v_menu WHERE idioma = '".$data['lang']."'");
$query = $query->result_array();
$id = $this->uri->segment(4);
$query2 = $this->db->query("SELECT orden FROM v_menu where id = '$id'");
$query2 = $query2->result_array();
foreach ($query as $row)
foreach ($query2 as $row2):
if ($row['MIN(orden)'] == $row2['orden']):
$data['error'] = "Sorry, can not continue going up";
$query = $this->db->query("SELECT * FROM v_menu ORDER BY orden");
$data['query'] = $query->result_array();
$query2 = $this->db->query("SELECT * FROM paginas");
$data['query2'] = $query2->result_array();
$data['pagina'] = "admin/menu";
$this->load->view('admin/index', $data);
else:
$n = 1;
$orden = $row2['orden'];
$nuevo_orden = $orden - $n;
$query3 = $this->db->query("update v_menu set orden = '$orden' where orden= '$nuevo_orden'");
$querys = $this->db->query("update v_menu set orden = '$nuevo_orden' where id = '$id'");
header ('location: '.base_url().'index.php/administrator/menu/'.$data['lang'].'');
$query = $this->db->query("SELECT * FROM v_menu ORDER BY orden");
$data['query'] = $query->result_array();
$query2 = $this->db->query("SELECT * FROM paginas");
$data['query2'] = $query2->result_array();
$data['pagina'] = "admin/menu";
endif;
endforeach;
else:
$this->load->view('admin/login');
endif;
}