Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, bom dia.
Estou com um problema que não consegui entender direito o que é. Vejam o SQL abaixo:
UPDATE promo SET count=(count+1), idInscricao='1' WHERE idPromo=3
Sempre que eu fizer um update no ID especificado, na logica o count deveria somar o resultado dele + 1, mas quando eu acesso a pagina para testar ele esta somando + 2, alguém já passou por este problema?
Ps.: Se eu executar este SQL direto no banco ele funciona, o problema esta sendo somente quando eu executo a pagina onde o script esta.
Continua o mesmo problema, eu ja testei tanto em INT quanto varchar
Nova informação, o problema só esta acontecendo no Google Chrome.
Bom dia DunkMask,
Eu sou um curioso, não sou programador, mas vou compartilhar o que tenho aqui.
NO SQL:
INSERT INTO galeria (id, nome, local, pasta, foto01, clicks)
NO PHP:
<?
include("../config.php");
$id = $_REQUEST["id"];
$sql = @mysql_query("SELECT * FROM galeria WHERE id = '$id'");
$rows = @mysql_fetch_array($sql);
$clicks = $rows["clicks"];
$pasta = $rows["pasta"];$sql = @mysql_query("UPDATE galeria SET clicks = '$clicks' WHERE id = '$id'");
?>
Não sei corrigir o que tenha de errado no seu código, mas talvez observando o código acima você tenha uma luz.
att,
Marcos Paulo.
A lógica está certa, se ele está adicionando 2 vezes você deve estar rodando a consulta 2 vezes.
Sem você postar o código, o que agente pode fazer é tentar adivinhar.
COUNT é uma palavra reservada do MySQL, coloque count nas querys para que não haja mal entendidos.
Não quero dizer que seja este o problema, se fosse isso, o MySQL daria erro e não seria executada a SQL.
>
A lógica está certa, se ele está adicionando 2 vezes você deve estar rodando a consulta 2 vezes.
Sem você postar o código, o que agente pode fazer é tentar adivinhar.
O que o Playerbr disse é o mais provável.
o problema só acontece no google chrome.
Eu estou executando apenas um update simples como mostrei acima, mas independente do nome que eu uso para o contador o problema continua.
A sql é executada do lado do servidor e não há relação com navegador.
Seu problema não é na sql.
Bom, mas é o navegador que esta causando o problema. Testei no internet explorer e esta funcionando perfeitamente.
Segue o código usado:
<?php
$sql = "SELECT * FROM promo_inscricao WHERE idPromo=".$_GET['refid']." ORDER BY rand()";
$query = mysql_query($sql);
$x = mysql_fetch_object($query);
$data = date("Y-m-d H:i:s")
$sql2 = "UPDATE promo_vencedor SET clicar=clicar+1, idIscricao=$x->idInscricao, data=$data WHERE idPromo=".$_GET['refid'];
$query2 = mysql_query($sql2);
?>
Estou apenas usando uma query para buscar um inscrito e outra para armazenar os dados do vencedor. O contador é para ter ideia de quantas vezes foi realizado o mesmo sorteio
Não me parece haver nada de errado com o código que postou.
Você executa essa página de forma assíncrona (ajax), submetendo um formulário ou acessando um página?
Se você estiver executando de forma assíncrona, provavelmente está executando duas vezes o script.
requisição por get, eu acesso a pagina.
Mas como eu mencionei, o internet explorer executa normalmente, só o chrome que da este problema
Olá,
Tenta assim :
UPDATE promo SET count = count + 1, idInscricao = '1' WHERE idPromo = 3