[RESOLVIDO] Inserir dados em outra tabela com 2 clausulas where

preciso escrever esse código com 2 clausulas where
	1 como esta WHERE id_cliente =" . {id_cliente});
	e a segunda cpf_cnpj = {cpf_cnpj}
	eu coloco assim e não funciona
	
	sc_lookup (ds,"SELECT valor_areceber FROM pagamento 
WHERE id_cliente =" . {id_cliente}) and cpf_cnpj= .{cpf_cnpj};
$total = {ds[0][0]} + {valor_recebido};

///////////////////////

esse a mesma coisa 2 clausulas where

sc_exec_sql("UPDATE pagamento SET valor_areceber = ". $total . "
WHERE id_cliente = " . {id_cliente}) and cpf_cnpj= .{cpf_cnpj};

um if e else que se o cpf existir faça o primeiro código e se não existir faça esse abaixo

se o cpf_cnpj com o id do cliente não existir use esse de baixo
obs: esse código de baixo esta funcionando perfeitamente se testado sozinho

$sql = “INSERT INTO
pagamento( nome_destino_p, cpf_cnpj, valor_areceber, login, id_cliente)
VALUES
(”. sc_sql_injection($nome_destino_p). ", ".
sc_sql_injection($cpf_cnpj). “,”.
sc_sql_injection($valor_recebido). “,”.
sc_sql_injection($login). “,”.
sc_sql_injection($id_cliente). “)”;

sc_exec_sql($sql);

Tente usar este código abaixo:

$sql = “SELECT valor_areceber FROM pagamento WHERE id_cliente = " . {id_cliente} . " and cpf_cnpj = '”.{cpf_cnpj}."’";
sc_lookup (ds, $sql);
$total = 0;
if (isset({ds[0][0]})) {
$total = {ds[0][0]} + {valor_recebido}
}

1 Curtida

Pelo que entendi, seria assim:

sc_lookup (ds,“SELECT valor_areceber FROM pagamento
WHERE id_cliente =” . {id_cliente}) and cpf_cnpj= .{cpf_cnpj};

if (isset({ds[0][0]}){

$total = {ds[0][0]} + {valor_recebido};

sc_exec_sql("UPDATE pagamento SET valor_areceber = ". $total . "
	     WHERE id_cliente = " . {id_cliente}) and cpf_cnpj= .{cpf_cnpj};

}else{

$sql = “INSERT INTO
	pagamento( nome_destino_p, cpf_cnpj, valor_areceber, login, id_cliente)
	VALUES
	(”. sc_sql_injection($nome_destino_p). ", ".
	sc_sql_injection($cpf_cnpj). “,”.
	sc_sql_injection($valor_recebido). “,”.
	sc_sql_injection($login). “,”.
	sc_sql_injection($id_cliente). “)”;

}
sc_exec_sql($sql);

1 Curtida

O que fiz foi a correção dessa linha porque esse parêntese está em local errado e falta colocar aspas simples no cpf_cnpj se o mesmo for string

1 Curtida

Observação perfeita!!!. Não analisei o código, apenas as condições if e else, que não constam na rotina postada pelo mayinfo.

1 Curtida

obrigado vou testar aqui

// com esse funciona mas preciso colocar o cpf_cnpj= cpf_cnpj
sc_lookup (ds,“SELECT valor_areceber FROM pagamento
WHERE id_cliente =” . {id_cliente});
$total = {ds[0][0]} + {valor_recebido};

sc_exec_sql("UPDATE pagamento SET valor_areceber = “. $total . "
WHERE id_cliente =” . {id_cliente});

// tentei fazer com esse where do ronaldo
// WHERE id_cliente = " . {id_cliente} . " and cpf_cnpj = '”.{cpf_cnpj}."’";mas da erro

///// consegui resolver desse jeito, agora só da uma mensagem de erro no insert mas mesmo assim inclui no banco//
$sql = “INSERT INTO
pagamento( id_destino_p, cpf_cnpj, valor_areceber, login, id_cliente)
VALUES
(”. sc_sql_injection($id_destino_p). ", ".
sc_sql_injection($cpf_cnpj). “,”.
sc_sql_injection($valor_recebido). “,”.
sc_sql_injection($login). “,”.
sc_sql_injection($id_cliente). “)”;

sc_lookup (ds,“SELECT valor_areceber, cpf_cnpj FROM pagamento
WHERE id_cliente = ‘{id_cliente}’ AND cpf_cnpj = ‘{cpf_cnpj}’”);

$total = {ds[0][0]} + {valor_recebido};
$cpf = {ds[0][1]};

if (!empty($cpf))
{
sc_exec_sql(“UPDATE pagamento SET valor_areceber = “. $total .”
WHERE id_cliente = ‘{id_cliente}’ AND cpf_cnpj = ‘{cpf_cnpj}’”);

}

else

sc_exec_sql($sql);

Tente assim:
$sql = “INSERT INTO
pagamento( id_destino_p, cpf_cnpj, valor_areceber, login, id_cliente)
VALUES
(”. sc_sql_injection($id_destino_p). ", ".
sc_sql_injection($cpf_cnpj). “,”.
sc_sql_injection($valor_recebido). “,”.
sc_sql_injection($login). “,”.
sc_sql_injection($id_cliente). “)”;

sc_lookup (ds,“SELECT valor_areceber, cpf_cnpj FROM pagamento
WHERE id_cliente = ‘{id_cliente}’ AND cpf_cnpj = ‘{cpf_cnpj}’”);

if (isset({ds[0][0]})) {
$total = {ds[0][0]} + {valor_recebido};
$cpf = {ds[0][1]};
if (!empty($cpf)) {
$sql = “UPDATE pagamento SET valor_areceber = “. $total .”
WHERE id_cliente = ‘{id_cliente}’ AND cpf_cnpj = ‘{cpf_cnpj}’”;
}
}
sc_exec_sql($sql);

Observação: Você tem mais de um cliente com o mesmo id? Porque você está usando o id e cpf_cnpj para localizar o cliente?