Last active
August 29, 2015 14:08
-
-
Save jsfernando/0928a6cc17def0a14ecc to your computer and use it in GitHub Desktop.
Exemplo de Exclusão de Registros com Tabela FREE no Seblod
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
define('_JEXEC', 1); | |
define('DS', DIRECTORY_SEPARATOR); | |
define('JPATH_BASE', '../../../'); | |
require_once JPATH_BASE . DS . 'includes' . DS . 'defines.php'; | |
require_once JPATH_BASE . DS . 'includes' . DS . 'framework.php'; | |
$app = JFactory::getApplication('site'); | |
$app->initialise(); | |
?> | |
<link href="/css/bootstrap-responsive.css" rel="stylesheet" type="text/css" /> | |
<link href="/css/bootstrap.css" rel="stylesheet" type="text/css" /> | |
<?php | |
$id = $_POST["xid"]; // a variavel xid vem com o id da tabela #__cck_core do Seblod | |
$x= explode('/', $id); | |
$db =& JFactory::getDBO(); | |
// Nesta query faço a pesquisa com o id da #__cck_core para recuperar o id da tabela free #__sala_aula, onde gravo a reserva. | |
$query = "SELECT r.id, c.pk, c.cck, c.storage_table, c.id as idcck FROM #__sala_aula r | |
INNER JOIN #__cck_core c ON r.id = c.pk | |
WHERE r.id='$x[2]' and c.storage_table = '#__sala_aula' and c.pk='$x[2]' | |
"; | |
// executo a query | |
$db->setQuery($query); $rsala_aula = $db->loadObject(); | |
// armazeno em $id_cck o valor do idcck da tabela free #__sala_aula | |
$id_cck = $rsala_aula->idcck; | |
// Como tenho que excluir dois registros (1º da Tabela Seblod #__cck_core e 2º da Tabela FREE #__sala_aula) | |
// Vou abrir uma transação no banco de dados MySQL, pois se em alguma das 2(duas) Tabelas não conseguir excluir, posso voltar ao estado Original. | |
try | |
{ | |
$db->transactionStart(); // Inicia a Transação | |
$query = $db->getQuery(true); | |
$sql1 = "Delete From #__cck_core Where id = '$id_cck' "; // Query de Exclusão do registro (campo id) da tabela seblod #__cck_core | |
$sql2 = "Delete From #__sala_aula Where id= '$x[2]' "; // Query de Exclusão do registro (campo id) da tabela free #__sala_aula | |
$db->setQuery($sql1); | |
$result1 = $db->execute(); // executa a primeira query $sql1 | |
if($result1 == 1){ // se o resultado da exclusão (query) for igual "1" ... excluiu... | |
$query = $db->getQuery(true); | |
$db->setQuery($sql2); | |
$result2 = $db->execute(); // executa a segunda query $sql2 | |
if($result2 == 1){ // se o resultado da exclusão (query) for igual "1" ... excluiu | |
$db->transactionCommit(); // efetua a transação com sucesso | |
// esse será o retorno na div #system da chamada do jQuery | |
echo " | |
<div class=\"alert alert-success\"> | |
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> | |
<h4>Sucesso!!!</h4> | |
A Reserva de Sala de Aula foi excluida! | |
</div> | |
"; | |
// caso a query $sql2 não funcione o roolback retornará a transação e mostrará o erro como retorno na div #system | |
} else { | |
$db->transactionRollback(); //If Error then rollback | |
echo " | |
<div class=\"alert alert-error\"> | |
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> | |
<h4>Erro!!!</h4> | |
Ocorreu um Erro na Exclusão da Reserva na Tabela Sala Aula!!! <br/> | |
$e->getMessage() | |
</div> | |
"; | |
} | |
// se o resultado $result1 da primeira exclusão da query $sql1 não for "1", não funcionou a exclusão | |
} else { | |
$db->transactionRollback(); //If Error then rollback => reverte a transação iniciada na linha 38 | |
echo " | |
<div class=\"alert alert-error\"> | |
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> | |
<h4>Erro!!!</h4> | |
Ocorreu um Erro na Exclusão da Reserva na Tabela cck_Sala_Aula!!! | |
$e->getMessage() | |
</div> | |
"; | |
} | |
} | |
catch (Exception $e) | |
{ | |
// catch any database errors. | |
$db->transactionRollback(); | |
//JErrorPage::render($e); | |
echo " | |
<div class=\"alert alert-error\"> | |
<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button> | |
<h4>Erro!!!</h4> | |
Ocorreu um Erro na Exclusão da Disciplinas!!! <br/> | |
$e->getMessage() | |
</div> | |
"; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment