Jump to content
alessandrolcruz

Subtrair valores de uma coluna no banco de dados

Recommended Posts

Olá amigos,

 

Preciso de uma ajuda.

 

Eu tenho um banco de dados e nele tem uma tabela de nome segurado com os campos (limite_atual, limite_disponível e limite_usado).

 

Eu preciso fazer com que o campo limite_atual mostre o resultado entre a subtraçao do limite_usado do limite_disponivel e não sei como fazer isso no php.

 

você podem me ajudar????

Share this post


Link to post
Share on other sites

Depende da forma que sua tabela está estruturada, poste um pra print pra gente ver?

 

Se for apenas uma linha de dados, só consultar e retornar. Se for mais linhas de dados, só fazer um laço executando a subtração.

 

Cada caso é 1 caso, aguardo retorno.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By patrickjnunes1995
      Bom dia, estou tendo dificuldades em recuperar dados de uma tabela do banco de dados, pelo PHP.
      <?php require_once('conexao_bd.php'); $consulta = "SELECT * FROM table"; $con = $mysqli->query($consulta) or die ($mysql->error); echo $dado["nome"]; ?>  
      E o arquivo conexão_bd.php está ok.
       
      Não pude encontrar em nenhuma página pela internet essa solução.
       
      Quero que exiba na página PHP, valores como algum nome, gravado na tabela do banco de dados.
       
      Desde já obrigado.
    • By Priscila1307
      CREATE TABLE CLIENTE( Idcliente int, nome varchar(60), dtnascimento date, cpf varchar(11), CONSTRAINT pk_cliente PRIMARY KEY (Idcliente) ); CREATE TABLE PEDIDO( Idpedido int, Idcliente int, datapedido date, vltotal decimal(10,2), CONSTRAINT pk_pedido PRIMARY KEY (Idpedido), CONSTRAINT fk_pedido_cliente FOREIGN KEY (Idcliente) REFERENCES CLIENTE(Idcliente) ); CREATE TABLE PRODUTO( Idproduto int, descricao varchar(100), quantidade int, CONSTRAINT pk_produto PRIMARY KEY (Idproduto) ); CREATE TABLE ITEMPEDIDO( Idpedido int, Nritem int, valor decimal(10,2), quantidade int, Idproduto int, CONSTRAINT pk_itempedido PRIMARY KEY (Idpedido, Nritem), CONSTRAINT fk_Idpedido FOREIGN KEY (Idpedido) REFERENCES PEDIDO (Idpedido), CONSTRAINT fk_itempedido_produto FOREIGN KEY (Idproduto) REFERENCES PRODUTO (Idproduto) ); CREATE TABLE LOG( Idlog int, data date, descricao varchar(255), CONSTRAINT pk_log PRIMARY KEY (Idlog) ); INSERT INTO CLIENTE VALUES (1, 'Hugo Batista', TO_DATE('05/02/1990', 'DD/MM/YYYY'), '51898608253'); INSERT INTO CLIENTE VALUES (2, 'José Antonio', TO_DATE('02/05/1985', 'DD/MM/YYYY'), '51144722241'); INSERT INTO CLIENTE VALUES (3, 'João Carlos', TO_DATE('03/05/1993', 'DD/MM/YYYY'), '84882273292'); INSERT INTO CLIENTE VALUES (4, 'Edivaldo Santana', TO_DATE('01/06/2000', 'DD/MM/YYYY'), '30609426176'); INSERT INTO CLIENTE VALUES (5, 'Cristina Oliveira', TO_DATE('16/08/1999', 'DD/MM/YYYY'), '56313586700'); INSERT INTO CLIENTE VALUES (6, 'Artur da Silva', TO_DATE('06/05/2001', 'DD/MM/YYYY'), '67491246583'); INSERT INTO CLIENTE VALUES (7, 'Adrina Domingues', TO_DATE('01/02/1972', 'DD/MM/YYYY'), '22044617250'); INSERT INTO PRODUTO VALUES (1, 'SAMSUNG J7 - PRIME', 10); INSERT INTO PRODUTO VALUES (2, 'SAMSUNG J5 - PRIME', 10); INSERT INTO PRODUTO VALUES (3, 'IPHONE X', 10); INSERT INTO PRODUTO VALUES (4, 'MOTO G 5S', 10); INSERT INTO PRODUTO VALUES (5, 'IPHONE 6S', 10); INSERT INTO PEDIDO VALUES (1, 4, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1400.99); INSERT INTO ITEMPEDIDO VALUES (1, 1, 800.99, 1, 1); INSERT INTO ITEMPEDIDO VALUES (1, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (2, 2, TO_DATE('17/03/2018', 'DD/MM/YYYY'), 1349.50); INSERT INTO ITEMPEDIDO VALUES (2, 1, 749.50, 1, 4); INSERT INTO ITEMPEDIDO VALUES (2, 2, 600.00, 1, 2); INSERT INTO PEDIDO VALUES (3, 1, TO_DATE('20/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (3, 1, 1800.71, 1, 5); INSERT INTO ITEMPEDIDO VALUES (3, 2, 789.39, 1, 4); INSERT INTO PEDIDO VALUES (4, 5, TO_DATE('21/03/2018', 'DD/MM/YYYY'), 2590.10); INSERT INTO ITEMPEDIDO VALUES (4, 1, 5099.00, 1, 3); INSERT INTO PEDIDO VALUES (5, 7, TO_DATE('10/03/2018', 'DD/MM/YYYY'), 1800.00); INSERT INTO ITEMPEDIDO VALUES (5, 1, 600.00, 3, 2); "Crie um select que exibe quais são os três PRODUTOS com a maior quantidade de PEDIDOS. Exiba o nome e o código do produto"
       
      Oi pessoal. por favor preciso da ajuda de vocês . 
      Eu queria criar um SELECT que exiba os três PRODUTOS com a maior quantidade de PEDIDOS.
      Retornando nome do produto ( PRODUTO.DESCRICAO )  e  o código dele ( PRODUTO.IDPRODUTO )
       
      Eu tentei das seguintes formas mas não consegui . estou novinha ainda em oracle
       
       
      SELECT PRODUTO.DESCRICAO, PRODUTO.IDPRODUTO, ITEMPEDIDO.QUANTIDADE FROM ITEMPEDIDO, PEDIDO, PRODUTO WHERE ITEMPEDIDO.IDPEDIDO = PEDIDO.IDPEDIDO AND PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO GROUP BY IDPRODUTO  
      neste código só roda sem erro se eu tirar o GROUP BY IDPRODUTO.  Mas não gera o resultado esperado 

       
      SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC  
       
      Aqui eu até consegui chegar perto mas não consegui acrescentar o nome do produto ( que é PRODUTO.DESCRICAO) e o produto com idproduto 2 ( que é o J5 ) não são só 3 vendidos. SÃO 5 !!! ai ai ai ai
       
      ....e apos muita batalha eu consegui fazer isso ... que tbm ainda não é o ideal
       
      SELECT * FROM (SELECT ITEMPEDIDO.IDPRODUTO, COUNT(*) AS VENDIDO FROM ITEMPEDIDO GROUP BY IDPRODUTO ORDER BY VENDIDO DESC) WHERE ROWNUM <4  

       
      ... demorei horrores pra fazer esse WHERE ROWNUM <4  rodar sem erro... pois é pessoal. só historia triste ! kkkkk
       
       
      Agora estou tentando esse aqui mas não terminei 
       
      SELECT PRODUTO.DESCRICAO AS NOME, ITEMPEDIDO.IDPRODUTO FROM PRODUTO, ITEMPEDIDO WHERE PRODUTO.IDPRODUTO = ITEMPEDIDO.IDPRODUTO
       
       
      acabei parando no meio do caminho e decidi recorrer ao imasters ! 
       
      vou continuar tentando ... sera que consigo antes de alguem aparecer aqui ? rsrsrs
       
      obrigada ! boa sorte pessoal.
       
       
       
      ah ! já ia esquecendo estou usando o livesql.oracle.com
       
      e vou deixar aqui tbm a consulta das tabelas 
       
       

    • By jvb
      Olá pessoas ... 
      Primeiro de tudo obrigado desde já ... 
      Estou criando conteúdo para estudos, aproveitando o tempo estudando PHP, Mysql e css Juntos e algumas ideias vão surgindo, não que elas sejam pra complicar, mais sim ficar mais objetivo o site Local. Sendo assim, ajuda dos colegas é .
       
      ----------------------------------------
      Eu tenho 3 Colunas >
      Coluna 1
      Coluna 2
      Coluna 3
      as 3 segui height auto, de acordo com conteudo, sendo que a coluna 1 sempre tem height maior, pois é ela que mostra capitulos de um livro, por exemplo.
      A coluna 2 tem conteudo do capitulo selecionado na coluna 1, nela coloco os titulos com links ancoras, de todo o capitulo ( selecionado na coluna 1), obviamente a coluna 3 contem o capitulo, com seus:
      <p></p>
      <img>
      <strong>
      <h1 a h6> etc...
      ok.
       
       
      O problema
      ----------------------------------------
       
      eu gostaria de colocar a coluna 2 seguindo a rolagem da página top e bottom, para top, ok de boa,  consigo com .rolagem { position: stick;} para bottom a coluna 2 é maior que a tela em alguns casos, então eu só consigo ver todo conteúdo ao chegar no final da coluna 1 ou 3.
       
      Então seria na rolagem a baixo, a coluna 2 também rolar, mas ficar com conteudo sempre na tela. Pra baixo rola até o final, pra cima rola até o topo da coluna, nunca sair o conteúdo da tela, não importa o tamanho das colunas 1 e 3. 
      Como posso resolver? tem como só com css? 
       
       
      ---------------------------------------- 
    • By Leloruhan
      Boa noite , estou com uma duvida de colocar a coluna ao lado da outra , segue imagens do código e do prototipo , alguém consegue me ajudar ? falar em que estou errando.
      TENTEI USAR DISPLAY : FLEX  E INLINE-BLOCK DECLARANDO AS COLUNAS TB MAS "não FUNCIONOU".
    • By rafaelpereirap
      Olá, venho pedir ajuda. Estou fazendo um painel admin e no módulo de notícias criei um formulário pra inserir a nova notícia com um campo para inserir a imagem. Criei vários cases para me mostrar se foi feito ou não o registro e agora está dando uma das mensagens do case que não registrou a notícia e não salva a imagem na página indicada. Se puderem me ajudar com esse problema fico agradecido. Seguem os códigos: 
      <?php class connectMysql { private $host = 'localhost'; private $user = 'root'; private $password = 'Be15se90@';//'admin'; private $banco = 'siteNovoCoopama'; private $mysqli = ''; private $insertId = ''; public function __construct(){ } private function mysqlConnect() { $this->mysqli = new mysqli($this->host, $this->user, $this->password, $this->banco); if (mysqli_connect_error()) { die('FATAL ERROR: Can not connect to SQL Server.'); exit(); } } public function executeQuery($query) { $this->mysqlConnect(); // $query = mysqli_real_escape_string($this->mysqli, $query); $this->result = $this->mysqli->query($query); //$this->insertId = mysqli_insert_id(); $this->mysqlClose(); return $this->result; } public function mysqlClose() { $this->mysqli->close(); } /* * vai remover caso tente um sql injection * */ public function limparString($sql) { $sql = addslashes($sql); return $sql; } } noticiaNovo.php
      <?php include ($_SERVER['DOCUMENT_ROOT'] . '/_constantes.php'); //include (RAIZ_SITE . '/protecao.php'); require_once $_SERVER['DOCUMENT_ROOT'] . '/connectMysql.php'; //include_once ($paths['Controller'] . 'NoticiasController.php'); //include 'Controller/NoticiasController.php'; /* * uma dica... esse eh o form pra cadastrar noticias, correto? * isso mesmo, na verdade eu fiz a chamada de inserção e as outras funções no DAO mas não to conseguindo chamar ele, está gerando erro * ai ia tentar dessa maneira para ver se inseria . * mesmo que faca desse jeito, nunca coloque o insert na mesma pagina do form pq você tem que submeter a pagina pra ela mesma com o form carregado * e se a pessoa ficar dando f5, vai ficar cadastrando a mesma noticia qtas vezes ela atualizar a pagina * se quiser fazer dessa forma, sem o DAO, cria uma nova pagina para submeter o form e depois, redireciona para a pagina da noticia * entendue? * criar tipo um validar.php né? * mas queria aprender dessa maneira, orientada, uma puxando a outra * bora fazer rsss * bora lá kkkkk * as chamadas no DAO ta certo? */ ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Coopama | Admin</title> <link rel="shortcut icon" href="/admin/dist/img/favicon.png"> <!-- Google Font: Source Sans Pro --> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback"> <!-- Font Awesome --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/fontawesome-free/css/all.min.css"> <!-- Theme style --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/dist/css/adminlte.min.css"> <!-- summernote --> <link rel="stylesheet" href="<?=HOST_ADMIN?>/plugins/summernote/summernote-bs4.min.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body class="hold-transition sidebar-mini"> <div class="wrapper"> <!-- Navbar --> <nav class="main-header navbar navbar-expand navbar-white navbar-light"> <!-- Left navbar links --> <ul class="navbar-nav"> <li class="nav-item"> <a class="nav-link" data-widget="pushmenu" href="#" role="button"><i class="fas fa-bars"></i></a> </li> <li class="nav-item d-none d-sm-inline-block"> <a href="home.php" class="nav-link">Home</a> </li> <!--<li class="float float-sm-right"> <a href="#" class="nav-link float-right">Contato</a> </li>--> </ul> </nav> </div> <!-- Main Sidebar Container --> <aside class="main-sidebar sidebar-dark-primary elevation-4"> <!-- Brand Logo --> <a href="home.php" class="brand-link"> <img src="dist/img/logo-quadrada-transparente.png" alt="Coopama" class="brand-image img-circle elevation-3" style="opacity: .8"> <span class="brand-text font-weight-light">Coopama</span> </a> <!-- Sidebar --> <div class="sidebar"> <!-- Sidebar user (optional) --> <div class="user-panel mt-3 pb-3 mb-3 d-flex"> <div class="image"> <img src="dist/img/avatar5.png" class="img-circle elevation-2" alt="User Image"> </div> <div class="info"> <a href="#" class="d-block"><?php echo $_SESSION['nome'];?></a> </div> </div> <!-- Sidebar Menu --> <nav class="mt-2"> <ul class="nav nav-pills nav-sidebar flex-column" data-widget="treeview" role="menu" data-accordion="false"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-newspaper nav-icon"></i> <p> Noticias <i class="fas fa-angle-left right"></i> <span class="right badge badge-danger">News</span> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-newspaper fa-xs nav-icon"></i> <p> Noticias Coopama <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="noticiaNovo.php" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="listaNoticia.php" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-journal-whills fa-xs nav-icon"></i> <p> Coopama Informa <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-ethernet fa-xs nav-icon"></i> <p> Coopama Informa - Web <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-plus nav-icon"></i> <p>Inserir uma nova</p> </a> </li> </ul> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-list nav-icon"></i> <p>Listar Todas</p> </a> </li> </ul> </li> </ul> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon far fa-calendar-alt"></i> <p> Eventos <i class="fas fa-angle-left right"></i> <span class="badge badge-info right">!</span> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Feiras Coopama</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>AGO</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Concurso de Café</p> </a> </li> <!--<li class="nav-item"> <a href="#" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p>Calendário</p> </a> </li>--> </ul> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-columns"></i> <p> Banners </p> </a> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-tree"></i> <p> Cotação Geral <i class="fas fa-angle-left right"></i> </p> </a> <ul class="nav nav-treeview"> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-tractor nav-icon"></i> <p>Milho</p> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="fas fa-coffee nav-icon"></i> <p>Café</p> </a> </li> </ul> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-columns"></i> <p> Trabalhe Conosco </p> </a> </a> </li> <li class="nav-item"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-calendar-alt"></i> <p> Calendario <span class="badge badge-info right"></span> </p> </a> </li> </ul> </nav> </div> </div> <!-- /.sidebar --> </aside> <!-- Content Wrapper. Contains page content --> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <div class="container-fluid"> <div class="row mb-2"> <div class="col-sm-6"> <h1>Noticias</h1> </div> <div class="col-sm-6"> <ol class="breadcrumb float-sm-right"> <li class="breadcrumb-item"><a href="home.php">Home</a></li> <!--<li class="breadcrumb-item active"></li>--> </ol> </div> </div> </div><!-- /.container-fluid --> </section> <!-- Main content --> <section class="content"> <div class="container-fluid"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h3 class="card-title" style="width: 100%">Crie uma nova noticia</h3> </div> <!--<div id="corpoNoticia"class="row">--> <!--<h2 class="center" align="center" style="cursor: pointer"><u>Crie uma nova noticia</u></h2>--> <br style="clear: both"> <form name="novaNoticia" id="novaNoticia" method="post" enctype="multipart/form-data" style="text-align: center"> <input type="hidden" name="acao" id="acao" value="novaNoticia"> <div class="form-row"> <div class="form-group col-lg-6"> <label for="titulo">*Titulo</label> <input type="text" class="form-control" id="titulo" name="titulo" placeholder="Titulo da Noticia" required> </div> <div class="form-group col-md-6"> <label for="previa">Prévia</label> <input type="text" class="form-control" id="previa" name="previa" placeholder="Prévia da Noticia"> </div> </div> <div class="form-group"> <label for="texto">*Texto</label> <textarea class="form-control" id="texto" name="texto" placeholder="Texto da Noticia" required></textarea> </div> <div class="form-row"> <div class="file-field input-field col s12 l8"> <label for="imagem">Imagem Destaque</label> <input type="file" class="form-control" required name="imagemDestaque" id="imagemDestaque"> </div> <div class="form-group col-md-2"> <label for="data">*Data da Postagem</label> <input type="date" class="form-control" name="data" id="data" required> </div> <div class="form-group col-md-2"> <label for="status" required>*Status</label> <select id="status" name="status" class="form-control"> <option selected>Escolher...</option> <option value="A">Ativa</option> <option value="R">Rascunho</option> <option value="D">Descartada</option> </select> </div> <div class="form-group col-md-1"> <label for="fixa">*Topo?</label> <select name="fixa" required id="fixa" class="form-control"> <option value="S">Sim</option> <option value="N">Não</option> </select> </div> <div class="form-group col-md-4" style="text-align: center; margin-top: 30px"> <button type="submit" id="btnSubmit" class="btn btn-group-lg" style="color: white; background-color: #0f9d58">Enviar</button> </div> </div> <!--<hr>--> <!--<button type="submit" class="btn btn-primary" style="color: white; background-color: #0f9d58; " >Enviar</button>--> </form> <br> </div> </div> </div> </div> </section> <style> form { padding-right: 10px; padding-left: 10px; } .form-row{ font-weight: bold; } card-header{ grid-template-rows: 120px 1fr 60px; } label{ padding-left: 5px; padding-right: 5px; } button{ color: #fff; background-color: #0f9d58; padding-bottom: 50px; } form > label{ font-size: 1.0rem; padding-right: 55px; } </style> <!-- Control Sidebar --> <aside class="control-sidebar control-sidebar-dark"> <!-- Control sidebar content goes here --> </aside> <!-- /.control-sidebar --> </div> <!-- ./wrapper --> <!-- jQuery --> <script src="/admin/js/jquery-3.6.0.min.js"></script> <!-- Bootstrap 4 --> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script> <script src="//cdn.jsdelivr.net/npm/sweetalert2@10"></script> <script> $(function (){ $(".preloader").fadeOut(); /*$.post('/processa/acaoNoticias.php',{ acao: 'validarCadastro', }, function (data){ if(data['tipo'] == 'sucess'){ $('#btnSubimit').hide(); Swal.fire({ title: data['titulo'], html: data['mensagem'], type: data['tipo'], confirmButtonText: "Fechar" }); }else { $('#btnSubimit').show(); } },'json');*/ $('#novaNoticia').submit (function (e){ e.preventDefault(); if ($('#titulo, #previa, #texto, #imagem, #data, #status, #fixa').val() != ''){ //$('#btnSubmit').hide(); $.ajax({ type: "POST", url: '/admin/processa/acaoNoticias.php', dataType: 'json', data: new FormData($('#novaNoticia').get(0)), contentType:false, processData: false, cache: false, success: function (data){ if (data['tipo'] == 'success'){ document.getElementById('novaNoticia'). reset(); } $('#btnSubmit').show(); Swal.fire({ title: data['titulo'], html: data['mensagem'], icon: data['tipo'], confirmButtonText: "Fechar" }); }, error: function (data){ $('#btnSubmit').show(); $('#modal-warning').addClass('hide').fadeOut(5); Swal.fire({ title: data['titulo'], html: data['mensagem'], type: 'error', confirmButtonText: "Fechar" }); } }); }else { Swal.fire({ title: 'Atenção', type:'Info', html: 'Os campos com * são obrigatorios, por favor volte e verifique se você preencheu todos.', confirmButtonText: "Fechar" }) } }) }) <?php if(!empty($_SESSION['MSG_RETORNO'])) { $msgRetorno = $_SESSION['MSG_RETORNO']; echo 'Swal.fire({ title: "' . $msgRetorno['titulo'] . '", html: "' . $msgRetorno['mensagem'] . '", type: "' . $msgRetorno['tipo'] . '", confirmButtonText: "Fechar" });'; /* * Apos mostrar a msg de sucesso ou erro, a sessao é eliminada e nao sera mais chamada. */ unset($_SESSION['MSG_RETORNO']); } ?> </script> </body> </html> classNoticias.php
      <?php require_once $_SERVER['DOCUMENT_ROOT'] . '/admin/connectMysql.php'; include_once $_SERVER['DOCUMENT_ROOT'] . '/admin/Beans/Noticias.php'; class classNoticias extends connectMysql { public $titulo = ''; public $texto = ''; public $previa = ''; public $imagem = ''; public $data = ''; public $status = ''; public $fixa = ''; public $codNoticia = ''; /** * classNoticias constructor. */ public function __construct() { } /** * @return array */ public function editaNoticia() { $query = $this->executeQuery("UPDATE noticias SET titulo = '" . addslashes(utf8_decode($this->titulo)) . "', texto = '" . addslashes(utf8_decode($this->texto)) . "', previa = '" . addslashes(utf8_decode($this->previa)) . "', imagem = '" . $this->imagem . "', NOW(), status = '" . $this->status . "', fixaTopo = '" . $this->fixa . "', WHERE codNoticia = '" . (int)$this->codNoticia . "' LIMIT 1"); if ($query == true) { return ['tipo' => 'sucess', 'titulo' => 'Sucesso!', 'mensagem' => 'Noticia modificada!']; } else { return ['tipo' => 'error', 'titulo' => 'Erro!', 'mensagem' => 'Erro ao fazer a edição, tente novamente']; } } public function listaNoticias() { $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias ORDER BY dataPostagem DESC"); $return = []; while ($sql = $query->fetch_array()) { $return[] = [ 'codNoticia' => utf8_encode($sql['codNoticia']), 'titulo' => utf8_encode($sql['titulo']), 'texto' => utf8_encode($sql['texto']), 'previa' => utf8_encode($sql['previa']), 'imagemDestaque' => utf8_encode($sql['imagemDestaque']), 'dataPostagem' => utf8_encode($sql['dtHrPostagem']), 'status' => utf8_encode($sql['status']), 'fixaTopo' => utf8_encode($sql['fixaTopo']) ]; } return $return; } public function listaNoticiasByCod() { $query = $this->executeQuery("SELECT *, DATE_FORMAT(dataPostagem, '%d/%m/%Y %H:%i') dtHrPostagem FROM noticias WHERE codNoticia = " . (int)$this->codNoticia . "LIMIT 1"); $return = []; while ($sql = $query->fetch_array()) { $return[] = [ 'codNoticia' => utf8_encode($sql['codNoticia']), 'titulo' => utf8_encode($sql['titulo']), 'texto' => utf8_encode($sql['texto']), 'previa' => utf8_encode($sql['previa']), 'imagemDestaque' => utf8_encode($sql['imagemDestaque']), 'dataPostagem' => utf8_encode($sql['dtHrPostagem']), 'status' => utf8_encode($sql['status']), 'fixaTopo' => utf8_encode($sql['fixaTopo']) ]; } return $return; } public function cadastrarNovaNoticia() { if ($this->fixa == 'S') { $this->executeQuery("UPDATE noticias SET fixa = 'X'"); } $sql = "INSERT INTO noticias (titulo, texto, previa, imagemDestaque, dataPostagem, status, fixaTopo) VALUES ('" . addslashes(utf8_decode($this->titulo)) . "', '" . addslashes(utf8_decode($this->texto)) . "', '" . addslashes(utf8_decode($this->previa)) . "', '" . addslashes(utf8_decode($this->imagem)) . "', NOW(), '" . addslashes(utf8_decode($this->status)) . "', '" . addslashes(utf8_decode($this->fixa)) . "')"; return $this->executeQuery($sql); } } acaoNoticias.php
      <?php $titulo = 'Atenção!'; $mensagem = 'Houve um erro ao acessar esta página, por favor, tente novamente.'; $tipo = 'warning'; $html = ''; if(!empty($_POST['acao'])){ require_once '../../_constantes.php'; require_once RAIZ_SITE_ADMIN . '/Classes/classNoticias.php'; $classNoticias = new classNoticias(); /* * diminuir a quantidade de arquivos dessa forma * utiliza um arquivo desse pra cada modulo (noticas textos, ..) * o que vai determinar o que sera feito, eh o campo acao * veja que ja chamou a classe acima e ja instanciou ela, entao nao precisa chamar mais * o que estiver dentro do switch case, vai ser executado de acordo com o valor da acao */ $conn = new mysqli(HOST, USER, SENHA, BD); switch ($_POST['acao']) { /* * se for uma nova noticia entra neste case */ case 'novaNoticia': { if(!empty($_POST['titulo']) && !empty($_POST['previa']) && !empty($_POST['texto'])) { /* * atribui os valores as variaveis. falta o upload da imagem e os outros campos */ $classNoticias->titulo = $_POST['titulo']; $classNoticias->previa = $_POST['previa']; $classNoticias->texto = $_POST['texto']; $classNoticias->fixa = $_POST['fixa']; $classNoticias->status = $_POST['status']; /* * Verifica se fez o upload da imagem */ $mensagemExiste = 'N'; if (!empty($_FILES['imagemDestaque'])) { /*$extensao = pathinfo(substr($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION, -4));*/ $extensao = pathinfo($_FILES['imagemDestaque']['name'], PATHINFO_EXTENSION); $mensagemExiste = 'S'; if (array_search(strtolower($extensao), ['jpg', 'png', 'jpeg']) == true) { $nomeImagem = md5(date('dmYHis')) . '.' . $extensao; if (move_uploaded_file(RAIZ_SITE . '/var/www/html/novoSiteCoopama/images/noticias' . $nomeImagem, $_FILES['imagemDestaque']['tmp_name']) == true) { $mensagemExiste = 'V'; $classNoticias->imagem = $nomeImagem; } else { $mensagemExiste = 'X'; } } } /* * salva a noticia */ $retorno = $classNoticias->cadastrarNovaNoticia(); // retorno true ou false do insert if ($retorno == true) { switch ($mensagemExiste) { case 'N': $txt = 'Imagem não selecionada.'; break; case 'S': $txt = 'Noticia não gravada, confira novamente'; break; case 'X': $txt = 'Notícia gravada com sucesso mas houve um erro ao salvar a imagem.'; break; case 'V': $txt = 'Notícia gravada com sucesso.<br>Imagem armazenada com sucesso.'; break; default: $txt = 'Notícia gravada com sucesso mas sem imagem selecionada.'; break; } $tipo = 'success'; $titulo = 'Sucesso!'; $mensagem = $txt; } else { $tipo = 'error'; $titulo = 'Erro!'; $mensagem = 'Erro ao gravar a noticia, por favor, tente novamente.'; } } else { $mensagem = 'Por favor, preencha todos os campos marcados com * para gravar sua notícia.'; } break; } case 'listarNoticias': { $sql = "SELECT codNoticia, titulo, previa, texto, dataPostagem, status, fixaTopo FROM noticias"; $conn = mysqliConnect(); $result = $conn->query($sql); $registros = []; if ($result->num_rows > 0){ while($row = $result->fetch_assoc()){ $registros[] = $row; } }elseif ($conn->error){ echo "Erro: " . $conn->error; } break; } case 'editarNoticias': { break; } case 'localizarNoticia': { break; } default: echo "Erro: " . $conn->connect_error; } } else { // caso tenha cmapo vazio, vai retornar para pagina de cadastro de noticias $tipo = 'warning'; $titulo = 'Atenção!'; $mensagem = 'Por favor, preencha todos os campos e tente novamente.'; } echo json_encode([ 'titulo' => $titulo, 'tipo' => $tipo, 'mensagem' => $mensagem, 'html' => $html, ]);
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.