Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - zellion

#111
Foro Libre / Re: ¿Paso algo nuevo?
10 Septiembre 2011, 00:50 AM
Esta jugando al counter xDD
#112
Foro Libre / Re: Ese podría haber sido yo…
10 Septiembre 2011, 00:46 AM
OMG!!!! Pezado de historia xD, de 10 jajaja
#113
Todos en fila, pero me parece de idiotas defender lo indefendible...
#114
Que bien....no nos lo podemos perder ;D(ironia -.-)
#115
Nakp eres un crack, estuve probando la base de datos y va perfecta. Eso pasa por fijarse solo en el código y no en la BBDD.

~ Yoya ~ probare el programa, pero el problema que estoy de practicas en una empresa y tengo que hacerlo con el gedit xD. Para la próxima intentare escribir en el post todo lo necesario  ;).


Muchas gracias a todos y cuando queráis os invito a esa caña que os debo  :xD.
#116
Shell ¿te borro también los nietos? Si es asi la ley de murphy se esta ensañando :xD. Es que al parecer al volverse a llamar la función a si misma, se debe de hacer una paja mental de proporciones épicas xD.

Es que utilizo el gedit para programar y para depurarlo, hojita de papel y boli :(.
#117
Foro Libre / Re: ¿pesadilla o sueño?
1 Junio 2011, 10:25 AM
Eso o que le van a borrar el porno xDD
#118
Estos no han visto la pelicula: "Que se mueran los feos"  :xD.
#119
 id_familia      nombre_familia  id_padre

        1      |     Electronica     |        0      |
        2      |     Ordenador     |        1      |
        3      |     Monitor           |        2      |
        4      |     Fontaneria     |        0      |
        5      |     Carpinteria     |        0      |
        6      |      Mesa             |        5      |
        7      |     Teclado          |        2      |



Hola chicos, os dejo unos datos de prueba de la tabla en cuestión. Técnicamente si borro Electrónica, debería de  borrar también Ordenador, Monitor y Teclado, porque están relacionadas por una jerarquía.

Mientras que los demás registros no se deberían de borrar. Nakp si veo que es un problema de lógica me pego un tiro  :xD, he estado 3 días con la maldita función  ;D.

Shell Root estuve probando tu código y solo me borra un nivel, es decir no borra los nietos.

Acabo de ver un fallo, en mi codigo. (Por hacer copy-paste). Realmente en la ultima llamada se llama asi misma.
Código (php) [Seleccionar]

<?php
      
function borrarRegistro($id)
      {      
         
$datos $this->buscarHijo($id);

         
$this->borrar($id);
         
         
$total count($datos);
         for(
$i 0;$i<=$total;$i++)
         {
            
$this->borrar($datos[$i][id_familia]);
            if(isset(
$datos))
            {
               
$this->borrarRegistro($datos[$i][id_familia]);
            }
         }                  
      } 
?>


Intenté hacerlo recursivo para buscar hijos hasta que se hayan borrado todos los que estén relacionados. Muchas gracias a los dos, si conseguimos solucionarlo os invito a unas cañas  :P.

Un saludo.


Edito: Lo siento, pero no consigo que los datos de prueba estén bien cuadrados :(.
#120
Hola chic@s, tengo hecha una función que borra lo que no debe. Os explico que debería de hacer: Es una función que borra un registro de una base de datos (Mysql) y tiene mas registro que dependa de ella, también se tendrían que borrar.

Pero lo que sucede es que se cepilla toda la tabla, estuve depurando el programa y no veo ningún fallo, haber si vosotros podéis verlo.

Esta es la tabla:

CREATE TABLE snd_familia (
id_familia int(4) auto_increment primary key,
nombre_familia varchar(15) NOT NULL,
id_padre int(4) NOT NULL);

El campo ip_padre se relaciona con el campo id_familia, sacando la información de este último. Yo lo haría con dos tablas, pero tengo que hacerla en una.

Aqui os pongo las funciones que utilizo:

      function buscarHijo($id_familia)
      {
         try
         {
            global $config;
            $db = new ConexionBD();
            $db->conectar();
            
            $query = sprintf("select * from %sfamilia where id_padre = ('%s')",
            mysql_real_escape_string($config['tbl_prefix']),
            mysql_real_escape_string($id_familia));
            $sql = mysql_query($query);
            
            while($row = mysql_fetch_assoc($sql))
            {
               $datos[] = $row;
            }                     
            return $datos;         
            $db->desconectar();
         }catch(Exception $e){
            echo "Ocurrio un error: " . mysql_error();
         }
      }

      function borrar($id_familia)
      {
         try{
            global $config;
            $db = new ConexionBD();
            $db->conectar();            
               $query=sprintf("DELETE FROM %sfamilia WHERE id_familia= ('%s')",
               mysql_real_escape_string($config['tbl_prefix']),
               mysql_real_escape_string($id_familia));
               mysql_query($query);
               $db->desconectar();            
         }catch(Exception $e){
            echo "Ocurrio un error: " . mysql_error();
            }
      }

      function borrarRegistro($id)
      {      
         $datos = $this->buscarHijo($id);

         $this->borrar($id);
         
         $total = count($datos);
         for($i = 0;$i<=$total;$i++)
         {
            $this->borrar($datos[$i][id_familia]);
            if(isset($datos))
            {
               $this->borrado($datos[$i][id_familia]);
            }
         }                  
      }  

Gracias por leer el tema y si algo no se entiende o veis como se puede mejorar, ponedlo por favor. Que llevo poco con este lenguaje jeje.

Un saludo