Ir para conteúdo

POWERED BY:

Arquivado

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

Tamboréu

[Resolvido] Atualizar Vários Registros da tabela

Recommended Posts

é só pegar o ID de cada um e jogar no array, utilize foreach para correr os campos e atualizar os registros.

 

Amigos

 

Estou tendo a mesma dificuldade para atualizar vários regisytros de uma única vez. O meu problema é bem simples, mas não consigo solucioná-lo. Se vcs puderem mi ajudar, vamos a ele:

 

1) Quero atualizar a pontuacao do ranking de vários atletas de uma única só vez. Logo, criei uma página - modificar_ranking.php - e inseri um form que contém a listagem de todos os atletas (seu código) + outro form para digitar a pontuação. O código seria esse:

<tr>

	<td>ATLETA 01</td>

	<td>
		<input type="text" name="nova_pontuacao[]" maxlength="5" value="000"> pts</td>
		<input type="hidden" name="codigo_atleta[]" value="353">
</tr>

<tr>

	<td>ATLETA 02</td>

	<td>
		<input type="text" name="nova_pontuacao[]" maxlength="5" value="000"> pts</td>
		<input type="hidden" name="codigo_atleta[]" value="354">
</tr>

<tr>

	<td>ATLETA 03</td>

	<td>
		<input type="text" name="nova_pontuacao[]" maxlength="5" value="000"> pts</td>
		<input type="hidden" name="codigo_atleta[]" value="355">
</tr>

E ASSIM POR DIANTE ...

Na página que grava as modificações - chamada de modificar_ranking_db.php - é que está o meu problema. O código que estou usando para gravar é esse, mas NÃO GRAVA.

 

foreach($nova_pontuacao as $indice1 =>$valor_nova_pontuacao){
	
   	$result=mysql_query("
	
		UPDATE atletas SET 
	
			ranking_2009='$valor_nova_pontuacao'
			
		WHERE codigo='$codigo_atleta'") || die("1 - Ranking não modificado. Favor efetuar a modificação novamente");
}


	echo "
		<center>
		<br>
		<font class=\"sucesso\">Ranking modificado com sucesso!</font>
		<br><br>
		<a href=\"adm/ranking/\">voltar</a>
		</center>
		";

Imagino (e tenho quase certeza) que o problema está no "WHERE". Teria que fazer um loop (com foreach) tb no "codigo_atleta". Mas como fazer isso, haja vista que já tem um foreach no "nova pontuação"???

 

Agradeço a ajuda de vocês, afinal estou há uns 20 dias tentando achar uma solução, mas sem sucesso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tamboréu, seja bem vindo ao fórum. Quando tiver dúvidas, crie um tópico específico para elas.

 

Tópico dividido

 

Sobre a sua dúvida, eu mudaria o form e faria tudo com um foreach só. Assim.

 

<input type="text" name="nova_pontuacao[<?php echo $codigo_atleta?>]" maxlength="5" value="000"> pts</td>

O que você vai ter na página que recebe os dados deste form? Um array onde o índice é o código do atleta e o valor é o valor digitado. Aí no foreach você faz assim.

 

foreach($nova_pontuacao as $indice1 =>$valor_nova_pontuacao){
        
        $result=mysql_query("
        
                UPDATE atletas SET 
        
                        ranking_2009='$valor_nova_pontuacao'
                        
                WHERE codigo='$indice1'") || die("1 - Ranking não modificado. Favor efetuar a modificação novamente");
}

Deve funcionar

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Carlos Eduardo

 

Fiz essas pequenas, MAS IMPORTANTES, alterações que você me enviu e DEU CERTO!

 

Meu amigo, não tenho como lhe agradecer pela imensa ajuda que você me deu.

 

Agradeço, ainda, pela criação de um novo tópico. Desculpa pela minha postagem no tópico errado.

 

Abraços

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.