Ir para conteúdo

POWERED BY:

Arquivado

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

Leandromx

[Resolvido] Atualizar só que fiz mudei o conteúdo

Recommended Posts

Olá pessoal,

Seguinte... estou uma pequena dificuldade..

 

Eu listo dentro de um form os meus resultados

<form>
while(){
Responsável: <input type='text' name='resp[]' />
Data: <input type='text' name='data[]' />
Status: <input type='text' name='status[]' />
Atualizado <input type='hidden' name='update[]' />
} // fim do while
<input type='submit' value='Atualiza'
</form>
Ai vem o que tenho que fazer.

 

Ao listar esses dados, me mostrar as DATA E HORA ( campo datetime converto para mostrar a data do brasil ), que atualizei por último.

 

Ai que está, vamos supor que eu mexo no campo 2 e 9, mudo só nome do campo 2 e status do campo 9, ou seja só posso atualizar essas

duas linhas.

 

Como posso fazer só para atualizar esses dois dados ao invés de atualizar tudo??

 

Eu estou usando

for(){
mysql_query(UPDATE)
}

Ai eu pego os dados e atualizado

 

Eu tinha pesado em ficar comparando dados antigos com dados novos.. mas achei muito trabalhoso...

 

Alguém idéia de como fazer isso???

 

Probleme que esta acontecendo é que ele esta atualizando o campo update de todos e só posso alterar se eu mudar o NOME do responsável ou a data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom....para ter menos trabalho ao verificar se mudou, você pode fazer essa verificação utilizando um campo hidden no form.

 

Mas como você não quer me altere o campo "Atualizado" é só você não coloca-lo na query.

 

Ex.:

$sql = "UPDATE tabela SET responsavel='$responsavel', data='$data', status='$status' WHERE id = $id";
mysql_query($sql);

É isso que você quer???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi direito, a solução do SetaMB vai resolver, mas eu faria um pouco diferente...

 

No teu while, eu colocaria assim...

 

<form>
while($row = ...){
Responsável: <input type="text" name="resp[<?php echo $row['id']?>]" />
Data: <input type='text' name='data[<?php echo $row['id']?>]' />
Status: <input type='text' name='status[<?php echo $row['id']?>]' />
Atualizado <input type='hidden' name='update[<?php echo $row['id']?>]' />
} // fim do while
<input type='submit' value='Atualiza'
</form>

 

Daí, na página que recebe, você usa um foreach.

 

foreach ($_POST['resp'] as $chave => $valor)
{
   UPDATE ..... WHERE id = $chave...
}

 

Acho que deu pra entender mais ou menos a lógica.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara estou tão bitolado nessa parada que ontem eu alterei umas 4 vezes o que eu escrevi...

Eu acabei usando o campo hidden, mas curti a idéia do matias.. não tinha pesado.

Vou utiliza-la...

 

Problema resolvi..

Obrigados aos dois..

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.