Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Brunck

Como saber se já existe registro e dar um update nele caso exista?

Recommended Posts

Galera, eu peguei esse código pronto desse post e gostaria de saber se vocês sabem como eu posso verificar se o cadastro já foi feito para apenas dar update no status.

E quando o status estiver "Aprovado", ele fazer uma consulta qualquer no banco.

Abraços a todos.

 

<?
$host = "";
$database = ""; // nome da base de dados MySql
$user = ""; // Usuário de acesso a base de dados
$pass = "";  // Senha de acesso a base de dados
									  
function conexao_mysql($host,$user,$pass,$database){
global $host, $user, $pass, $database;
//verifica se as variaveis (host,user,pass,database) estao setadas
if(isset($host) and isset($user) and isset($pass) and isset($database)){
//realiza a conexao com o banco de dados
$conexao = @mysql_connect($host, $user, $pass);
//checa se a conexao foi bem sucedida
if(!$conexao){
print("<font color='#FF0000'>Erro: Impossível conectar-se ao banco de dados.</font>");
exit();
}
//verifica e seleciona o banco de dados
if(!@mysql_select_db($database, $conexao)){
print("<font color='#FF0000'>Erro: Impossível selecionar o banco de dados desejado.</font>");
exit();
}
}else{
print("<font color='#FF0000'>Erro: Alguns dos dados para conexão ao banco de dados não foi informado.</font>");
}
}

conexao_mysql($host,$user,$pass,$database); 
	  
	  
// RECEBE O POST ENVIADO PELA PagSeguro E ADICIONA OS VALORES PARA VALIDACAO DOS DADOS
$PagSeguro = 'Comando=validar';
$PagSeguro .= '&Token='; // Insira aqui o código do Token gerado no PagSeguro
$Cabecalho = "Premium Down"; // Coloque um título

foreach ($_POST as $key => $value)
{
 $value = urlencode(stripslashes($value));
 $PagSeguro .= "&$key=$value";
}

if (function_exists('curl_exec'))
{
 //Prefira utilizar a funcao CURL do PHP
 //Leia mais sobre CURL em: http://us3.php.net/curl
 $curl = true;
}
elseif ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen ('ssl://pagseguro.uol.com.br', 443, $errno, $errstr, 30)) )
{
 $fsocket = true;
}
elseif ($fp = @fsockopen('pagseguro.uol.com.br', 80, $errno, $errstr, 30))
{
 $fsocket = true;
}

// ENVIA DE VOLTA PARA A PagSeguro OS DADOS PARA VALIDAÇÃO
if ($curl == true)
{
 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $PagSeguro);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_TIMEOUT, 30);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_URL, 'https://pagseguro.uol.com.br/Security/NPI/Default.aspx');
  $resp = curl_exec($ch);

 curl_close($ch);
 $confirma = (strcmp ($resp, "VERIFICADO") == 0);
}
elseif ($fsocket == true)
{
 $Cabecalho  = "POST /Security/NPI/Default.aspx HTTP/1.0\r\n";
 $Cabecalho .= "Content-Type: application/x-www-form-urlencoded\r\n";
 $Cabecalho .= "Content-Length: " . strlen($PagSeguro) . "\r\n\r\n";

 if ($fp || $errno>0)
 {
    fputs ($fp, $Cabecalho . $PagSeguro);
    $confirma = false;
    $resp = '';
    while (!feof($fp))
    {
       $res = @fgets ($fp, 1024);
       $resp .= $res;
       // Verifica se o status da transação está VERIFICADO
       if (strcmp ($res, "VERIFICADO") == 0)
       {
          $confirma=true;
          break;
       }
    }
    fclose ($fp);
 }
 else
 {
    echo "$errstr ($errno)<br />\n";
    // ERRO HTTP
 }
}


if ($confirma)
{
 // RECEBE OS DADOS ENVIADOS PELA PagSeguro E ARMAZENA EM VARIAVEIS
 //Selecione aqui todos os parametros enviados pela PagSeguro
 $VendedorEmail  = $_POST['VendedorEmail'];
 $TransacaoID = $_POST['TransacaoID'];
 $Referencia = $_POST['Referencia'];
 $TipoFrete = $_POST['TipoFrete'];
 $ValorFrete = $_POST['ValorFrete'];
 $Anotacao = $_POST['Anotacao'];
 $DataTransacao = $_POST['DataTransacao'];
 $TipoPagamento = $_POST['TipoPagamento'];
 $StatusTransacao = $_POST['StatusTransacao'];
 $CliNome = $_POST['CliNome'];
 $CliEmail = $_POST['CliEmail'];
 $CliEndereco = $_POST['CliEndereco'];
 $CliNumero = $_POST['CliNumero'];
 $CliComplemento = $_POST['CliComplemento'];
 $CliBairro = $_POST['CliBairro'];
 $CliCidade = $_POST['CliCidade'];
 $CliEstado = $_POST['CliEstado'];
 $CliCEP = $_POST['CliCEP'];
 $CliTelefone = $_POST['CliTelefone'];

 $NumItens = $_POST['NumItens'];

 $ProdID = $_POST['ProdID_1'];
 $ProdDescricao = $_POST['ProdDescricao_1'];
 $ProdValor = $_POST['ProdValor_1'];
 $ProdQuantidade = $_POST['ProdQuantidade_1'];
 $ProdFrete = $_POST['ProdFrete_1'];
 $ProdExtras = $_POST['ProdExtras_1'];


 // Verifique se a TransacaoID não foi previamente processada
 // Verifique se o email recebido (VendedorEmail) é o seu email
 // Verifique se o valor do pagamento está correto
 // Processe o pagamento salvando os dados em seu banco de dados

//	Pegando o IP do usuário
$ip = $_SERVER['REMOTE_ADDR']; // pegando o endereço remoto 
$forward = $_SERVER['HTTP_X_FORWARDED_FOR'];  // pegando o endereço que foi repassado (se houver) 
$ip=( (($ip=='unknown' || $ip=='201.6.24.158') && ( isset($foward) && $forward!='unknown'))?$forward:$ip);

$datahora = date("Y-m-d H:i:s");
$data = date("Y-m-d");
$hora = date("H:i:s");

$cadastro = mysql_query("INSERT into PagSeguroTransacoes (TransacaoID, VendedorEmail, TipoFrete, ValorFrete, Anotacao, TipoPagamento, Referencia, StatusTransacao, CliNome, CliEmail, CliEndereco, CliNumero, CliComplemento, CliBairro, CliCidade, CliEstado, CliCEP, CliTelefone, NumItens, ProdID, ProdDescricao, ProdValor, ProdQuantidade, ProdFrete, ProdExtras, ip, datahora, data, hora) VALUES ('$TransacaoID','$VendedorEmail','$TipoFrete','$ValorFrete','$Anotacao','$TipoPagamento','$Referencia','$StatusTransacao','$CliNome','$CliEmail','$CliEndereco','$CliNumero','$CliComplemento','$CliBairro','$CliCidade','$CliEstado','$CliCEP','$CliTelefone','$NumItens','$ProdID','$ProdDescricao','$ProdValor','$ProdQuantidade','$ProdFrete','$ProdExtras','$ip','$datahora','$data','$hora')");

}else{
 if (strcmp ($res, "FALSO") == 0) {
  // LOG para investigação manual
 }
}
Header("Location: index.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisará de uma chave que será UNIQUE ou então precisará da chave primária, seu INSERT ficaria assim:

 

INSERT INTO `suatabela`(`coluna1`,`coluna2`,`coluna_unique`) VALUES('valor 1','valor 2','valor 3') ON DUPLICATE KEY UPDATE `coluna1`=VALUES(coluna1), `coluna2`=VALUES(coluna2), `coluna3`=VALUES(coluna3);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.