Jump to content

Question

Sou novato em php/mysql e estou com uma emergência p resolver na loja. O problema é a sintaxe, pois não sei ainda.

A lógica da rotina eu já tenho. Preciso que alguém possa por favor me ajudar nisso pois é uma emergência das grandes!

Eu tenho uma tabela, chamada "caixa" nela dois campos "faltapagar" e "status".

Quando um produto não está pago, o campo "faltapagar" fica com valor acima de '0' ou seja, fica com valor do saldo a pagar, e o campo "status" fica com valor 'pendente'.

E sempre que um produto é totalmente pago, o campo "faltapagar" fica '0' e o código ao ler isso, muda o campo "status" para 'sucesso' e o cliente recebe um email com a liberação do produto para retirada. Até ai está certo.

Mas começou a acontecer um problema justo na saída do programador e estou com uma emergência enorme aqui na loja que eu mesmo terei que resolver.

O problema é o seguinte: 

Devido a um erro de execução que eu ainda n descobri a origem, o campo "status" tem mudado o valor para 'sucesso' com "faltapagar" sem estar '0', e isso está fazendo produtos não pagos ficarem com status de pago. Está dando um problema muito sério com os clientes, e é uma emergência muito grande resolver isso hoje!!! Por isso preciso muito de uma ajuda aqui bem objetiva, de quem puder me ajudar.

Uma solução rápida e paleativa que encontrei aqui é complementar um código que no momento da execução olhe na tabela "caixa" e faça assim: Se "status" está com valor 'sucesso' com "faltapagar" tendo um valor acima de '0' então alterar "status" para valor 'pendente'. 

Ou até mesmo se fosse o caso, fazer também um script roando no crontab em que de minuto em minuto examinasse a tabela "caixa" e comparar os campos "faltapagar" e "status", quando "status" estiver com valor 'sucesso' sem que "faltapagar" esteja com valor '0', esse script iria corrigir o valor 'sucesso' para 'pendente'.

A lógica do que é para ser feito eu já sei, mas o problema é a sintaxe, que não sei.

Alguém , me ajuda a montar esse script? É uma emergência!!

Desde já agradeço muito!

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

@mauspinola

Não sei o motivo que fez com que o programador que desenvolvia a aplicação saísse e não interessa  também...

A pessoa mais adequada para corrigir essa anomalia é ele próprio. Caso não seja possível o mesmo fazer, aconselho que contrate algum webmaster para está analisando o código entendendo seu comportamento só então aplicar as devidas correções.

Pois aqui não temos como saber como é o código para lhe orientar o que fazer.

 

19 horas atrás, mauspinola disse:

Alguém , me ajuda a montar esse script? É uma emergência!!

Isso vai contra os objetivos do setor que é orientar como resolver questões.

Tente criar um tópico solicitando uma aplicação como você deseja aqui:

https://forum.imasters.com.br/forum/87-empregos-e-parcerias/

 

Mas, o melhor caminho seria você contratar um programador (profissional) caso você não domine o assunto, assim sendo poderá discutir pessoalmente, quaisquer assuntos relacionados a aplicação. Uma vez que isso se trata sobre questões financeiras de sua atividade comercial.

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 rafaelmoreira78
      Boa tarde!
      Estou querendo fazer um select a partir da seleção de um combobox. Nesse combobox o usuário escolhe o tipo de busca que ele quer. Se é por nome, por id, por data etc. E depois, exibe os dados nos campos. Porém, não estou conseguindo e não sei como resolver isso.
      public void consultar(){ String sql ="select * from tbcertificados where ?=?"; try{ pst=conexao.prepareStatement(sql); pst.setString(1,cbConsulta.getSelectedItem().toString()); pst.setString(2,txtBusca.getText()); rs=pst.executeQuery(); if (rs.next()){ lblID.setText(rs.getString(1)); txtNome.setText(rs.getString(2)); comboCursos.setSelectedItem(rs.getString(3)); txtData.setText(rs.getString(4)); txtCH.setText(rs.getString(5)); txtEmpresa.setText(rs.getString(6)); txtObs.setText(rs.getString(7)); }  
    • By danilo759
      Tenho uma tabelinha de programas para uma rádio... está da seguinte forma.

      titulo
      data (YYYY-MM-DD)
      hora (00:00:00)

      Minha consulta, mas não retorna o programa da hora corrente. O que eu fiz de errado?
      SELECT * FROM programas WHERE data = CURDATE() AND hora = CURTIME() LIMIT 1
    • By Ro_JnR
      Estou tentando a semanas resolver um problema, consumir uma API e verificar se o campo no banco está vazio, se estiver faz insert se não faz update.
      Até aí tudo bem, agora não consigo passar do meu select para o banco, ele da erro.
       
      Segue o código:
       
      <?php

          require_once("db.class.php");
          
          $url = "https://servicodados.ibge.gov.br/api/v1/localidades/distritos";
              $ch = curl_init($url);
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
              curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
              $resultado = json_decode(curl_exec($ch));
              foreach ($resultado as $cidades) {
                  $nome = $cidades->nome;
                  $stmt = $conn->prepare("SELECT name FROM cidades WHERE name=?");
                  $stmt->bind_Param(':name', $nome);
                  $stmt->execute();
                  $stmt->bind_result($resultSelect);
                  $stmt->fetch();
                  if(!$stmt->execute()){
                      print_r($stmt->errorInfo());
                  }
              } 

      ?>
       
      Código do banco:
       
      $conn = new PDO("mysql:host=localhost;dbname=exercicio", "root", "");
      //"sqlsrv:Database=dbphp7;server=localhost\SQLEXPRESS;ConnectionPooling=0", "sa", "root");
      $stmt = $conn->prepare("SELECT * FROM cidades ORDER BY nome");
      $stmt->execute();
      //fetchALL basicamente faço while do mysqli
      $results = $stmt->fetchALL(PDO::FETCH_ASSOC);
       
      Print do erro:

       
      Tenho um outro exercicio que fiz bem parecido, consumi a API de estados e inseri no banco de dados, esse funcionou normalmente.
      Alguém poderia me dar uma luz, não sei mais o que fazer.
      Era para ser simples rsrsrrs.
    • By osmarindy
      Boa noite Pessoal.
      Estou com o seguinte problema. Tenho duas tabelas principais "tblProjeto" e "tblItensProjeto", tenho que selecionar o projeto (tblProjeto) cujo o item 19 (tblItensProjeto) já esteja concluído (status 5) e que o item 15 (tblItensProjeto) não esteja concluído (status 5) e nem cancelado (status 4).
      Tenho o seguinte código:
      SELECT p.nmProjeto, l.nmLocalidade, f.usuario, r.nmRequisitante, p.dtSolicitacao,p.dtPrevisaoEntrega, s.nmStatus FROM tblProjeto as p inner join tblItensProjeto as i on i.idProjeto = p.idProjeto inner join tblLocalidade as l on l.idLocalidade = p.idLocalidade inner join tblFuncionario as f on f.idFuncionario = p.idFuncionario inner join tblRequisitante as r on r.idRequisitante = p.idRequisitante inner join tblStatusProj as s on s.idStatus = i.idStatus where (i.idAtividade = 19 and i.idStatus= 5 ) and (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4))
      Se executo um  filtro de cada vez (where i.idAtividade = 19 and i.idStatus= 5 ) ou (i.idAtividade = 15 and (i.idStatus <> 5 and i.idStatus <> 4)) eles trazem resultados, mas quando deixo os dois filtros não funciona.
      Possuo 5 projetos que estão com a atividade 19 concluída e atividade 15 pendente. mas, não consigo com esse select trazer a informação. Alguém sabe como posso resolver?
    • By kania
      Olá pessoal,
      Estou tentando criar uma procedure no MySql para seja disparada sempre que um novo registro for cadastrado na tabela.
      Ela precisa atualizar um campo específico concatenando dois outros campos de outra tabela. Isto é possível?
       
      Preciso concatenar a coluna ID e ID_BANCO, da tabela empresa e atualizar a coluna CODIGO_OPERACAO da tabela proposta.
      Executando o que eu fiz funciona certinho, mais o que eu quero é que ela rode sozinha atualizando o campo CodigoOperacao do registro novo logo após este registro ser criado, isto porque preciso do novo ID criado, do Documento cadastrado e do Id_banco cadastrado para poder atualizar o mesmo registro.
       
      DELIMITER $$ CREATE PROCEDURE pr_codigo_operacao(IN _Id INT, IN _Documento VARCHAR(50), IN _IdBanco VARCHAR(50)) BEGIN UPDATE propostas SET CodigoOperacao = CONCAT(_Documento, "-", _IdBanco) WHERE Id = _Id; END $$ Criei um trigger para chamar a procedure, porém a mesma esta dando erro quando tento fazer um INSERT,
       
      ERRO
      #1442 - Can't update table 'propostas' in stored function/trigger because it is already used by statement which invoked this stored function/trigger
       
      DELIMITER $$ CREATE TRIGGER tgr_atualiza_codigo_operacao AFTER INSERT ON propostas FOR EACH ROW BEGIN CALL pr_codigo_operacao (new.Id, new.DocumentoCliente, new.Id_banco); END $$  
×

Important Information

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