Ajuda com comando UPDATE e condição

Olá Pessoal
Estou com este comando, mas não funciona quando coloco a condição IF

Pegando a variavel da forma de pagamento…

$pagamento= $_SESSION[‘formap’];
echo ‘Forma Pagamento…:’ .$pagamento;

// Atualizando Status e Data na tabela RECEBER
Tentativa 1
$update_sql = "update caixa_diario set caixa_valor_credito =’{brev_vlr_pago}’, caixa_dinheiro=’{brev_vlr_pago}’ if ({brec_forma_pgto} == ‘$pagamento’)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";

Tentativa 2
if (’$pagamento’ == 2)
{
$update_sql = "update caixa_diario set caixa_valor_credito =’{brev_vlr_pago}’, caixa_ccredito=’{brev_vlr_pago}’
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql);
}

Alguem pode me ajudar, como devo fazer essa condição.
Tenho varias condições de pagamento pegando de um select manual
1- Dinheiro, 2 C.Credito, 3 C.Debito, 4 - Cheque

Então preciso fazer o update no caixa diario, em 02 campos
1- acumulando do dia no geral (caixa_valor_credito)
2 - Campo especifico de acordo com a forma de pagamento selecionada.

Agradeço a ajuda de todos…

if (’$pagamento’ == 2)

Aqui é operação lógica da linguagem php tira as aspas simples, ‘ele’ entendeu que vc tá comparando o que tá escrito ‘$pagamento’ e não o valor que tá dentro da variável.

Ola Jailton, fiz os teste, mais ainda não esta funcionando…
Segue o debug, para sua avaliação e possivel ajuda.

Codigo Original:
$pagamento= $_SESSION[‘formap’];

echo $pagamento;

// Atualizando Status e Data na tabela Caixa_diario
if ($pagamento === 1)
echo $pagamento;
{
$update_sql = "update caixa_diario set caixa_valor_credito =’{brec_vlr_pago}’, caixa_dinheiro=’{brec_vlr_pago}’
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql);
}

if ($pagamento === 2)
echo $pagamento;
{
$update_sql2 = "update caixa_diario set caixa_valor_credito =’{brec_vlr_pago}’, caixa_ccredito=’{brec_vlr_pago}’
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql2);
}
if ($pagamento === 3)
echo $pagamento;
{
$update_sql3 = "update caixa_diario set caixa_valor_credito =’{brec_vlr_pago}’, caixa_cdebito=’{brec_vlr_pago}’
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql3);
}

if ($pagamento === 4)
echo $pagamento;
{
$update_sql4 = "update caixa_diario set caixa_valor_credito =’{brec_vlr_pago}’, caixa_cheque=’{brec_vlr_pago}’
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql4);
}

Debug:

Valor da variavel de sessão: 4
(mysql): update caixa_diario set caixa_valor_credito =‘0.06’, caixa_dinheiro=‘0.06’ WHERE caixa_dt_caixa = ‘2015-06-03’ and caixa_status = ‘A’
(mysql): update caixa_diario set caixa_valor_credito =‘0.06’, caixa_ccredito=‘0.06’ WHERE caixa_dt_caixa = ‘2015-06-03’ and caixa_status = ‘A’
(mysql): update caixa_diario set caixa_valor_credito =‘0.06’, caixa_cdebito=‘0.06’ WHERE caixa_dt_caixa = ‘2015-06-03’ and caixa_status = ‘A’
========O comando deveria executar somente essa linha, mas esta executando todas =============
(mysql): update caixa_diario set caixa_valor_credito =‘0.06’, caixa_cheque=‘0.06’ WHERE caixa_dt_caixa = ‘2015-06-03’ and caixa_status = ‘A’
Transactions not supported in ‘mysql’ driver. Use ‘mysqlt’ or ‘mysqli’ driver
(mysql): INSERT INTO receber_baixa (brec_data, brec_receber, brec_forma_pgto, brec_vlr_liq, brec_vlr_desc, brec_vlr_pago) VALUES (‘2015-06-03’, 1, 4, 150.00, 0.00, 0.06)
(mysql): select last_insert_id()

Agradeço a ajuda…

Paulo
Click Informatica

Tem que tirar as ‘’ dos campos que são valores.

Exemplo:
caixa_valor_credito =’{brec_vlr_pago}’,

caixa_valor_credito ={brec_vlr_pago},

Oi Jailton, fiz conforme voce falou, mas o problema e si e que não esta obdecendo a condição IF.
Esta executando todos os update ao mesmo tempo, e so quero que atualize o que a condição pede.
EX:
if ($pagamento === 1)
Se a condição escolhida for essa, so atualizar esse update.
e assim sucessivamente, e no mesmo não consigo fazer isso, esta executando todos os update. Espero que tenha entendido.
Obrigado

Paulo

Em PHP comparação é só ==

if ($pagamento === 1) {
echo ‘aqui 1’."
";
}
if ($pagamento === 2) {
echo ‘aqui 2’."
";
}

3 === e para compara booleanos y outros no php

Acredito que existem dois tipos de desenvolvedores:

Religious: São aqueles que enfiam a cabeça dentro de uma linguagem, e vão querer resolver tudo com ela;

Agnostics: São aqueles que acreditam que a lógica do problema é mais importante do que a linguagem;

Linguagens de programação são idiomas para expressar uma idéia, e acredito que quando você domina a idéia, como você se expressa é uma questão de formato de apresentação e não o core da atividade.

O formato de apresentação sempre tem suas particularidades, vantagens e best practices, mas isso é para quando você for um especialista.

Eu sugiro uma estratégia bem simples para começar uma nova linguagem:

  1. Faça coisas que você conhece bem e já tenha escrito em alguma outra linguagem

  2. Explore as estruturas básicas da linguagem (loops,condições,atribuições,operações,construções edefinições)

  3. Não exagere no tamanho do problema, comece pequeno (!)

  4. Refatore os problemas pequenos utilizando algo específico da linguagem

Essa estratégia implica que você não vai ter dúvidas em relação ao input e output do seu problema e que você já conhece ao menos um jeito de resolver.

Também você pode avançar de problemas extremamente simples (contar elementos em uma lista) para problemas mais avançados (implementar um codificador Huffman básico) de uma forma mais rápida, pois os problemas simples vão fazer você entender o novo idioma.

A refatoração do problema permite que uma vez que você entendeu o básico da construção na linguagem você vai partir mais confiante para descobrir novos jeitos e conceitos de resolver o problema, um exemplo bem legal disso é o uso de funções nativas do PHP e macros do scriptcase, e criar suas funções também.

Resolvi assim:
Coloquei no OnAfterInsert
// Pegar valores gravados no caixa_diario para fazer o acumulado do dia

// Check for record
$check_sql = "SELECT caixa_id,caixa_valor_credito, caixa_valor_debito, caixa_dinheiro, caixa_ccredito,caixa_cdebito, caixa_cheque, caixa_deposito, caixa_boleto, caixa_abatimento from caixa_diario
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) // Row found
{
$valorcredito = {rs[0][1]};
$valordebito = {rs[0][2]};
$valordinheiro = {rs[0][3]};
$valorccredito = {rs[0][4]};
$valorcdebito = {rs[0][5]};
$valorcheque = {rs[0][6]};
$valordeposito = {rs[0][7]};
$valorboleto = {rs[0][8]};
$valorabatimento = {rs[0][9]};
}

//echo ’ Valor Credito’ .$valorcredito;
//echo ’ Valor Debito’ .$valordebito;
//echo ’ Valor R$’ .$valordinheiro;
//echo ’ Valor Cart.Credito’ .$valorccredito;
//echo ’ Valor Cart. Debito’ .$valorcdebito;
//echo ’ Valor Cheque’ .$valorcheque;
//echo ’ Valor deposito’ .$valordeposito;
//echo ’ Valor boleto’ .$valorboleto;
//echo ’ Valor abatimento’ .$valorabatimento;

// Pegar o ID da forma de pagamento do ultimo registro gravado no baixa_contas_receber
// Check for record
$check_sql = “SELECT brec_id,brec_forma_pgto from receber_baixa
WHERE brec_id = {brec_id}
ORDER BY brec_id DESC” ;
sc_lookup(rs, $check_sql);

if (isset({rs[0][0]})) // Row found
{
$pagamento = {rs[0][1]};

}

// Atualizando Status e Data na tabela RECEBER
if ($pagamento == 1) {
$update_sql = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_dinheiro=(’{brec_vlr_pago}’+ $valordinheiro)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql);
}
if ($pagamento == 2) {
$update_sql2 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_ccredito=(’{brec_vlr_pago}’+ $valorccredito)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql2);
}

if ($pagamento == 3) {
$update_sql3 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_cdebito=(’{brec_vlr_pago}’ + $valorcdebito)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql3);
}
if ($pagamento == 4) {
$update_sql4 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_cheque=(’{brec_vlr_pago}’+ $valorcheque)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql4);
}
if ($pagamento == 5) {
$update_sql4 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_deposito=(’{brec_vlr_pago}’+ $valordeposito)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql4);
}
if ($pagamento == 6) {
$update_sql4 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_boleto=(’{brec_vlr_pago}’+ $valorboleto)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql4);
}
if ($pagamento == 7) {
$update_sql4 = "update caixa_diario set caixa_valor_credito =(’{brec_vlr_pago}’+ $valorcredito), caixa_abatimento=(’{brec_vlr_pago}’ + $valorabatimento)
WHERE caixa_dt_caixa = ‘{brec_data}’ and caixa_status = ‘A’ ";
sc_exec_sql($update_sql4);
}

Assim funcionou.

Obrigado a Jailton, pela suas dicas.