Pessoal, estou desenvolvendo um aplicativo que possui um CRUD em um banco MySql.
Estou utilizando uma API que encontrei na internet e adaptei ela para as minhas necessidades.
A leitura e o cadastro estão funcionando perfeitamente, porem o Delete não. Vou colocar os codigos abaixo, quem puder me orientar, eu agradeço muito!
Delete.class.php:
<?php
class Delete extends Conn{ private $Tabela; private $Termos; private $Places; private $Result; //PDO Statement--------- private $Delete; //PDO------------------- private $Conn; public function ExeDelete($Tabela, $Termos, $ParseString){ $this->Tabela = (string) $Tabela; $this->Termos = (string) $Termos; parse_str($ParseString, $this->Places); $this->getSyntax(); $this->Execute(); } public function getResult(){ return $this->Result; } public function getRowCount(){ return $this->Delete->rowCount(); } public function setPlaces($ParseString){ parse_str($ParseString, $this->Places); $this->Execute(); $this->getSyntax(); }
//Metod Privados private function Connect() { $this->Conn = parent::getConn(); $this->Delete = $this->Conn->prepare($this->Delete); }
private function getSyntax() { $this->Delete = "DELETE FROM {$this->Tabela} {$this->Termos}"; }
private function Execute() { $this->Connect(); try { $this->Delete->execute($this->Places); $this->Result = true; } catch (Exception $ex) { $this->Result = null; echo"Erro ao cadastrar".$e->getMessage(), $e->getLine(), $e->getFile(), $e->getCode(); } } }
api.php:
<?php $data = json_decode(file_get_contents("php://input")); $filter = filter_input(INPUT_SERVER,'REQUEST_METHOD'); require ('./_app/Config.php'); if($filter === 'POST'){ switch ($data->parametros) { //============================================ cadastro ============================================================= //============================================= Leitura ============================================================= //============================================= atualizar =========================================== //============================================= Delete =============================================== case "deletar": $delete = new Delete; $delete->ExeDelete('clientes', "WHERE id = :cod", "cod={$data->id}"); $read = new Read; $read->ExeRead('clientes',"WHERE id ={$data->id}"); echo json_encode($read->getResult()); break; default: break; } }else{ $read = new Read; $read->ExeRead('clientes'); echo json_encode($read->getResult()); }
Controller JavaScript com a função de Deletar:
angular.module('app.controllers', []) .controller('menuCtrl', function ($scope, $ionicModal, $timeout, $ionicLoading, Conexao, ConfigUrl) { $scope.lista = [];
$scope.carregar = function (){
$ionicLoading.show({ template: 'Carregando...' });
var valores = { parametros:'leitura' }
Conexao.getConexao(valores, ConfigUrl.BaseUrl).success(function(data){ console.log(data); $scope.lista = data; $ionicLoading.hide(); }).error(function(data){ });
}
$scope.carregar();
$scope.dados = function(valor){ $scope.nome2 = $scope.lista[valor].nome; $scope.telefone2 = $scope.lista[valor].telefone; $scope.email2 = $scope.lista[valor].email; $scope.origem2 = $scope.lista[valor].origem; $scope.ufOrigem2 = $scope.lista[valor].ufOrigem; $scope.destino2 = $scope.lista[valor].destino; $scope.ufDestino2 = $scope.lista[valor].ufDestino; $scope.roteiro2 = $scope.lista[valor].roteiro;
}
$scope.deletar = function(valor){ result = window.confirm("Apagar Registro: "+$scope.nome2); if(result==1){
var valores = { parametros:'deletar', id:valor }
Conexao.getConexao(valores, ConfigUrl.BaseUrl).success(function(data){
console.log(data);
if(data == ""){ alert('Registro Deletado com Sucesso'); $scope.carregar(); }else{ alert('Nao foi possivel deletar esse registro no momento...'); }
}).error(function(){
});
} } })
Página onde busco o $Indice que alimenta a função Deletar do JS:
<ion-view cache-view="false" title="Fretes"> <ion-content padding="true" class="has-header" ng-controller="refresh">
<ion-refresher pulling-text="Atualizando..." on-refresh="doRefresh()"> </ion-refresher>
<ion-list> <ion-item ng-repeat="frete in lista" ng-click="dados($index)" ui-sref="menu.frete()" class="listar-item item-lista item-icon-right"> {{frete.nome}} <br> <h4>Origem: {{frete.origem}} - {{frete.ufOrigem}}<br>Destino: {{frete.destino}} - {{frete.ufDestino}}</h4> <i class="icon ion-arrow-swap"></i> <ion-option-button class="button-assertive" ng-click="deletar(id2)">apagar Registro</ion-option-button> </ion-item> </ion-list> </ion-content>
<a ui-sref="menu.cadastraFrete()" class="add button ion-android-add"></a>
</ion-view>
O debugger do navegador retorna um erro de syntaxe do MySql, por isso penso que o meu problema esteja na API. Porem ja realizei diversos testes e não consegui encontrar o erro.