Vitor RC 11 Denunciar post Postado Junho 19, 2014 Tenho o seguinte codigo, que adiciona uma espécie de PONTOS na coluna Pontos de TODOS USUARIOS cadastrados no site! <?php require_once("../login/conexaorc.php"); $pontosdados = $_POST['pontosdar']; $sql = mysql_query("SELECT * FROM rc2us"); if(isset($pontosdados)){ while($linhas = mysql_fetch_array($sql)){ $meus_pontos = $linhas['pontos'] + $pontosdados; $sql_add = mysql_query("UPDATE rc2us SET pontos = '$meus_pontos'"); } } if($sql_add == true){ echo "<script>alert('Voce adicionou pontos!');</script>"; echo "<script>location.href='index.html';</script>"; } ?> Eu tenho um formulario que la pede quantidade de pontos e clica no Submit e ele executa o script acima, o problema que era pra somar os pontos que o usuario ja tem com o que eu disse no formulario, tipo usuario Joao tem 500 pontos e o Marcio tem 100, no formulario eu digite 20 pontos, assim ele vai somar ao valor dos usuarios 20 pontos: ficaria assim 520 e 120! Mas o que acontece e que ele pega o primeiro usuario da tabela, pega a quantidade de pontos dele somada com o do formulario e seta a quantidade do primeiro usuario + a quantidade que eu informei pra TODOS da TABELA! E não era pra ser assim: algum erro no codigo? Compartilhar este post Link para o post Compartilhar em outros sites
mnsan 1 Denunciar post Postado Junho 19, 2014 Olá, Vitor. Isso aconteceu porque vc não definiu um "WHERE" na sua query. Dessa forma, todos os registros da tabela rc2us serão atualizados. Faça algo como $id_usuario = $linhas['id']; $sql_add = mysql_query("UPDATE rc2us SET pontos = '$meus_pontos' WHERE id = '$id_usuario'"); Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Junho 19, 2014 Eu quero que todos sejam atualizados mesmo! Mas, ao inves dele somar os pontos ele seta o da primeiro da tabela em todos! Compartilhar este post Link para o post Compartilhar em outros sites
mnsan 1 Denunciar post Postado Junho 19, 2014 Eu quis dizer que todos são atualizados de uma vez. Como vc não colocou nenhum where todos os registros tem o valor do campo "pontos" definido com o mesmo valor. Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Junho 19, 2014 while($linhas = mysql_fetch_array($sql)){ $meus_pontos[$linhas['id']] = $linhas['pontos'] + $pontosdados; $sql_add = mysql_query("UPDATE rc2us SET pontos = '".$meus_pontos[$linhas['id']]."' WHERE id = " . $linhas['id']); } Compartilhar este post Link para o post Compartilhar em outros sites
mnsan 1 Denunciar post Postado Junho 19, 2014 paulinhosupriano, no código dele a variável "meuspontos" não é uma matriz... Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Junho 19, 2014 paulinhosupriano, no código dele a variável "meuspontos" não é uma matriz... Entendo, poderia usa apenas o $pontosUpdate = $pontosdados + $linhas['pontos']; $sqlUpdate = mysql_query("UPDATE rc2us SET pontos = '".$pontosUpdate."' WHERE id = " . $linhas['id']) or die("Erro no SQL de UPDATE "); Compartilhar este post Link para o post Compartilhar em outros sites