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










Autor



En línea






, he estado 3 días con la maldita función
.
.


.