Foros del Web » Programando para Internet » PHP »

Error al actualizar Base de datos!

Estas en el tema de Error al actualizar Base de datos! en el foro de PHP en Foros del Web. Hola gente, tengo un problema al actualizar una base de datos. bueno lo que quiero es ordenar un menu. Ejemplo. Tengo este menu. -- Nombre ...
  #1 (permalink)  
Antiguo 14/01/2010, 13:23
 
Fecha de Ingreso: enero-2010
Mensajes: 17
Antigüedad: 14 años, 3 meses
Puntos: 0
Error al actualizar Base de datos!

Hola gente, tengo un problema al actualizar una base de datos.

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;
    } 
  #2 (permalink)  
Antiguo 14/01/2010, 16:31
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Error al actualizar Base de datos!

Cuando tu por la aplicacion dices que quieres intercambiar el orden de dos elementos, debes hacer lo siguiente:

Código PHP:
Ver original
  1. <?
  2. /**
  3. * elementoSube = numero del orden que quiero subir
  4. * elementoBaja  = numero del orden que bajara despues de subir elementoSube
  5. */
  6. function intercambiar($elementoSube,$elementoBaja)
  7. {
  8.      $q = mysql_query("SELECT id FROM elementos WHERE orden=".$elementoSube);
  9.      $row = mysql_fetch_array($q);
  10.      $id_elemento_a_subir = $row["id"];
  11.  
  12.      $q = mysql_query("UPDATE elementos SET orden = ".$elementoSube." WHERE orden = ".$elementoBaja);
  13.  
  14.     $q = mysql_query("UPDATE elementos SET order = ".$elementoBaja." WHERE id=".$elemento_a_subir);
  15. }
  16. ?>

en sintesis, lo que tienes que hacer es simplemente guardar el id del elemento que vas a actualizar primero para que con este hagas la segunda actualizacion.

tal cual como el algoritomo de intercambio de valores co 2 variables que uno hace cuando esta aprendiendo algoritmia
  #3 (permalink)  
Antiguo 14/01/2010, 16:36
 
Fecha de Ingreso: enero-2010
Mensajes: 17
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Error al actualizar Base de datos!

Muchas Gracias webness

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:16.