Fórum Formulario + PHP para gravar no MySql #493593
25/09/2014
0
Mais uma vez venho recorrer a ajuda aqui no fórum. Seguinte, Tenho um Formulário pra cadastrar dados no MySql, qual seria o melhor jeito de enviar para MySql. O PHP na mesma pagina do Formulário?? Ou o PHP em outra pagina enviando os dados via post e depois do insert retorno para o form com a mensagem de erro ou sucesso!
Pergunto? Qual melhor forma para fazer isso? to no caminho certo??!
Abaixo parte do codigo php do INSERT, DELETE E UPDATE
Arquivo CRUD_FORM.php
<?php
// RECEBE VARIAVEIS NESCESSARIAS
if(isset($_GET['id'])){
$id = "$_GET[id]";
}
// ACOES DE CRUD - TBCLINICAS
// INSERT
if (isset($_POST['acao']) && ($_POST['acao'] == 'insert')){
try {
$cnpjMask = preg_replace("/\D+/", "", $_POST['cnpj']); // remove qualquer caracter não numérico
$InsertClinica=$pdo->prepare("INSERT INTO tbclinicas(cnpj, nome, regra, status)VALUES(:cnpj,
:nome, :regra, :status)");
$InsertClinica->bindValue(":cnpj",$cnpjMask, PDO::PARAM_INT);
$InsertClinica->bindValue(":nome",$_POST['nome'], PDO::PARAM_STR);
$InsertClinica->bindValue(":regra",$_POST['regra'], PDO::PARAM_STR);
$InsertClinica->bindValue(":status","S", PDO::PARAM_STR);
$InsertClinica->execute();
$sucesso = '';
echo"";
} catch(PDOException $e) {
$error = '';
echo"";
} };
// READ
// READ
//UPDATE
if (isset($_POST['acao']) && ($_POST['acao'] == 'update')){
try {
$cnpjMask = preg_replace("/\D+/", "", $_POST['cnpj']); // remove qualquer caracter não numérico
$UptClinica=$pdo->prepare("UPDATE tbclinicas SET cnpj=:cnpj, nome=:nome, regra=:regra WHERE id=:id");
$UptClinica->bindValue(":id", $id, PDO::PARAM_INT);
$UptClinica->bindValue(":cnpj",$cnpjMask, PDO::PARAM_INT);
$UptClinica->bindValue(":nome",$_POST['nome'], PDO::PARAM_STR);
$UptClinica->bindValue(":regra",$_POST['regra'], PDO::PARAM_STR);
$UptClinica->execute();
$sucesso = '';
echo"";
} catch(PDOException $e) {
$error = '';
echo"";
} };
// DELETE
if (isset($_GET['acao']) && ($_GET['acao'] == 'delete')){
try {
$DelClinica=$pdo->prepare("DELETE FROM tbclinicas WHERE id=:id");
$DelClinica->bindValue(":id",$id, PDO::PARAM_INT);
$DelClinica->execute();
$sucesso = '';
echo"";
} catch(PDOException $e) {
$error = '';
echo"";
} };
?>Agradeço de já a atenção de todos!!
Lucas Azevedo
Curtir tópico
+ 0Posts
25/09/2014
Wander Santos
Gostei + 0
23/10/2014
Fernando Blomer
Cara acho que você está no caminho certo sim. Eu sempre separo formulários de classes e depois retorno a informação ao formulário.
Em minhas classes de CRUD eu faço da seguinte maneira:
function cadastraDado($nome) {
global $banco;
$sql = "INSERT INTO setor (nome) VALUES ('$nome')";
$resultado = $banco->Execute($sql);
if(!$resultado){
return "erro";
}else{
return "";
}
}
No arquivo com o formulário faço um formulário normal, porem sem nada no action. Desta forma redireciono o formulário para a mesma página.
<form action="" method="post">
ainda na página do formulário tem o seguinte código que chama e executa meu CRUD e mostra a resposta.
if(isset($_POST['nome']) && $_POST['nome'] != ''){
include('class/dadosSetor.class.php');
$class_dados = new dadosSetor;
$class_dados->dados();
$resultado = $class_dados->cadastraDado($_POST['nome']);
if(isset($resultado) && $resultado == 'erro'){
//Mensagem de erro
}elseif(isset($resultado) && $resultado == ''){
//Mensagem de sucesso
}
}
Espero ter ajudado.
Gostei + 0
23/10/2014
Ronaldo Lanhellas
Enfim, resumidamente: Você tem que ter seu formulário de cadastro, que passa as informações via POST para uma classe PHP que realizará o tratamento necessário com os dados (sem fazer nada com o banco) e por fim você passa os dados tratados para uma outra classe que irá inserir,deletar,alterar ou remover esses registros.
Fazendo da forma que você está fazendo hoje você tornar-se dependente de uma visualização em HTML, modularizando seu projeto você pode a qualquer hora mudar a interface do seu projeto sem interferir na lógica do sistema.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)