Ir para conteúdo

POWERED BY:

Arquivado

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

Vitor RC

While adicionar

Recommended Posts

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

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

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
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

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

×

Informação importante

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