Example #1
0
if (!isset($_POST['id_ref']) or strlen($_POST['id_ref']) == 0) {
    ERR_muestra_pagina_error("Identificador de referencia no v�lido", "");
    exit;
}
//--------------------------------------------------------------
//  REALIZA EL BACKUP DE LAS REFERENCIAS
//---------------------------------------------------------------
//--------------------------------------------------------------
//  EJECUTA CONSULTAS DE BORRADO
//---------------------------------------------------------------
// consulta los campos que son responsabilidad directa
$consulta_campos = 'SELECT id_campos FROM ref_relacion ' . 'WHERE referencia_cruzada=0 AND id_ref=' . $_POST['id_ref'];
$resultado = mysql_query($consulta_campos, $conexion);
$id_campos = mysql_fetch_row($resultado);
// define consultas de borrado
$consultas_borrar = array("DELETE FROM ref_campos WHERE id_campo_ref=" . $id_campos[0], "DELETE FROM ref_relacion WHERE id_ref=" . $_POST['id_ref'] . " OR " . "id_ref_cruzada=" . $_POST['id_ref'], "DELETE FROM referencias WHERE id_referencia=" . $_POST['id_ref']);
// ejecuta todas las consultas
foreach ($consultas_borrar as $consulta) {
    // ejecuta consulta
    $resultado = mysql_query($consulta, $conexion);
    // chequea si ha habido error
    if (!$resultado) {
        ERR_muestra_pagina_error("No se pudo borrar registro." . " Error de consulta: " . $consulta, "");
        exit;
    }
}
// cierra descriptor
mysql_close($conexion);
// muestra mensaje de todo OK
ERR_muestra_pagina_mensaje("Se ha eliminado la referencia.", "");
//--------------------------------------------------------------------------
//--------------------------------------------------------------------
// BORRA DE LAS TABLAS DEL PROYECTO
//--------------------------------------------------------------------
$set_autocommit = "SET AUTOCOMMIT=";
$consultas[1] = "DELETE FROM proyecto_miembros WHERE id_proyecto=" . $_GET['idp'];
$consultas[2] = "DELETE FROM colaborador_proyectos WHERE id_proyecto=" . $_GET['idp'];
$consultas[3] = "DELETE FROM software_proyectos WHERE id_proyecto=" . $_GET['idp'];
$consultas[4] = "DELETE FROM proyecto_idiomas WHERE id_proyecto=" . $_GET['idp'];
$consultas[5] = "DELETE FROM proyectos WHERE id_proyecto=" . $_GET['idp'];
$consultas[6] = "COMMIT";
// los cambios solo se hacen al final, si no hubo error
// desactiva autocommit
$resultado = mysql_query($set_autocommit . "0", $conexion);
if (!$resultado) {
    ERR_muestra_pagina_error("No se pudo eliminar el proyecto." & mysql_error(), "");
    exit;
}
// realiza las consultas de borrado de miembro
for ($i = 1; $i < 7; $i++) {
    $resultado = mysql_query($consultas[$i], $conexion);
    if (!$resultado) {
        ERR_muestra_pagina_error("No se pudo eliminar el proyecto." & mysql_error(), "");
        exit;
    }
}
// vuelve a activar el autocommit (�Realmente es necesario?)
$resultado = mysql_query($set_autocommit . "1", $conexion);
ERR_muestra_pagina_mensaje("Se ha eliminado el proyecto del grupo.", "");
// cierra descriptor
mysql_close($conexion);
// borrar directorio
rmdir($software_dir_paquetes . 'paq_' . $_GET['ids']);
//--------------------------------------------------------------------
// BORRA DE LAS TABLAS DEL PROYECTO
//--------------------------------------------------------------------
$set_autocommit = "SET AUTOCOMMIT=";
$consultas[1] = "DELETE FROM software_proyectos WHERE id_software=" . $_GET['ids'];
$consultas[2] = "DELETE FROM paquetes_software WHERE id_software=" . $_GET['ids'];
$consultas[3] = "DELETE FROM software_idiomas WHERE id_software=" . $_GET['ids'];
$consultas[4] = "DELETE FROM software WHERE id_software=" . $_GET['ids'];
$consultas[5] = "COMMIT";
// los cambios solo se hacen al final, si no hubo error
// desactiva autocommit
$resultado = mysql_query($set_autocommit . "0", $conexion);
if (!$resultado) {
    ERR_muestra_pagina_error("No se pudo eliminar el software." & mysql_error(), "");
    exit;
}
// realiza las consultas de borrado de miembro
for ($i = 1; $i < 6; $i++) {
    $resultado = mysql_query($consultas[$i], $conexion);
    if (!$resultado) {
        ERR_muestra_pagina_error("No se pudo eliminar el software." & mysql_error(), "");
        exit;
    }
}
// vuelve a activar el autocommit (¿Realmente es necesario?)
$resultado = mysql_query($set_autocommit . "1", $conexion);
ERR_muestra_pagina_mensaje("Se ha eliminado el software del grupo.", "");
// cierra descriptor
mysql_close($conexion);
    // imprime el campo OPTidioma, OPTestado y OPTenlace
    fwrite($desc, ",\n  OPTidioma = " . $referencia[3]);
    fwrite($desc, ",\n  OPTestado = " . $referencia[4]);
    if ($referencia[6] != 'N') {
        fwrite($desc, ",\n  OPTenlace = " . $referencia[5]);
    }
    // escribe una llave y dos saltos de linea para cerrar registro
    fwrite($desc, "\n}\n\n");
}
// cierra fichero
fclose($desc);
//--------------------------------------------------------------
//  EJECUTA CONSULTAS DE BORRADO
//--------------------------------------------------------------
// define consultas de borrado
$consultas_borrar = array("DELETE FROM ref_cadenas ", "DELETE FROM ref_campos ", "DELETE FROM ref_relacion", "DELETE FROM referencias ");
// ejecuta todas las consultas
foreach ($consultas_borrar as $consulta) {
    // ejecuta consulta
    $resultado = mysql_query($consulta, $conexion);
    // chequea si ha habido error
    if (!$resultado) {
        ERR_muestra_pagina_error("No se pudo borrar tabla." . " Error de consulta: " . $consulta, "");
        exit;
    }
}
// cierra descriptor
mysql_close($conexion);
// muestra mensaje de todo OK
ERR_muestra_pagina_mensaje("Se han eliminado todas las referencias de las tablas.", "");
    return;
}
// selecciona base de datos
mysql_select_db($BASE_DATOS, $conexion);
//--------------------------------------------------------------------
// BORRA DE LAS TABLAS DEL PROYECTO
//--------------------------------------------------------------------
$set_autocommit = "SET AUTOCOMMIT=";
$consultas[1] = 'DELETE FROM colaborador_proyectos, colaboradores USING ' . 'colaborador_proyectos, colaboradores WHERE ' . 'colaborador_proyectos.id_colaborador=colaboradores.id_colaborador ' . 'AND grupo_pertenece=' . $_GET['idc'];
$consultas[2] = "DELETE FROM grupos_colaboradores WHERE id_grupo=" . $_GET['idc'];
$consultas[3] = "COMMIT";
// los cambios solo se hacen al final, si no hubo error
// desactiva autocommit
$resultado = mysql_query($set_autocommit . "0", $conexion);
if (!$resultado) {
    ERR_muestra_pagina_error("No se pudo eliminar el colaborador." & mysql_error(), "");
    exit;
}
// realiza las consultas de borrado de miembro
for ($i = 1; $i < 4; $i++) {
    $resultado = mysql_query($consultas[$i], $conexion);
    if (!$resultado) {
        ERR_muestra_pagina_error("No se pudo eliminar el colaborador." & mysql_error(), "");
        exit;
    }
}
// vuelve a activar el autocommit (¿Realmente es necesario?)
$resultado = mysql_query($set_autocommit . "1", $conexion);
ERR_muestra_pagina_mensaje("Se ha eliminado el grupo colaborador.", "");
// cierra descriptor
mysql_close($conexion);