Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Antoliv

UPDATE por Checkbox atualiza todos os dados de uma Só vez.

Recommended Posts

Todas vez que tento atulizar uma informação, onde marco-a por um checkbox, todas as outras informações são atualizadas.

 

Por exemplo, tenho uma lista de informações. cada informação é

uma linha e em cada uma dessas linhas tem um checkbox e um listbox.

 

Toda informação tem um campo de STATUS. Esse listbox serve para modificar esse STATUS,

que depois de escolhido é marcado no chekbox e envia o para o banco.

Até funciona, mas quando atualiza, atualiza todas as outras informações também.

 

 

 

No HTML, no VALUE do CHECKBOX, coloquei o ID:

 

<td><input type="checkbox" name="marcarPendencia[]" value="<?php echo $id_cataloga_erro; ?>"></td>

 

NO PHP(UPDATE):

 

mysql_query ("UPDATE tb_cataloga_erro SET status='".$status[$i]."' WHERE id_cataloga_erro = id_cataloga_erro ");

 

Não entendi porque atuliza todas as informações.

Quando marco o checkbox, é aplicada essa informação q a todas as outras.

 

Alguem tem ideia do que possa ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

id_cataloga_erro = id_cataloga_erro

 

Isso equivale a "1 = 1" ou "o valor corrente é igual ao valor corrente"

 

Você precisa usar o valor de uma variável.

Parece que você esqueceu o cifrão ($).

 

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falaeee, Beraldo!!!rsrs

 

Tô migrando ainda para MySQLi. Só que aos poucos.

 

Em relação a variável, quando a coloco não funciona.

Mas quando deixo o campo como está no banco, funciona.

Ex:

 

NÃO FUNCIONA:

 

$id_erro = $_POST['id_cataloga_erro'];

mysql_query ("UPDATE tb_cataloga_erro SET status='".$status[$i]."' WHERE id_cataloga_erro = '$id_erro ' ");

FUNCIONA:

mysql_query ("UPDATE tb_cataloga_erro SET status='".$status[$i]."' WHERE id_cataloga_erro = 'id_cataloga_erro ' ");

 

Por isso não estou entendendo ainda.

Vou tentar a variável novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No HTML tem:

 

<input type="hidden" name="id_cataloga_erro[]" value="<?php echo $id_cataloga_erro ; ?>">

 

para essa variável, criei um WHILE que pega de um SELECT...

 

Tipo:

$sql = SELECT campo FROM tabela

 

WHILE ($exibe = mysql_fetch_assoc($sql)){

 

$id_cataloga_erro = $exibe[id_cataloga_erro];

}

 

Daí, surge:

 

<input type="hidden" name="id_cataloga_erro[]" value="<?php echo $id_cataloga_erro ; ?>">

pego o name desse input (id_cataloga_erro):

 

coloco em outra variável:

$id_erro = $_POST['id_cataloga_erro'];

mysql_query ("UPDATE tb_cataloga_erro SET status='".$status[$i]."' WHERE id_cataloga_erro = '$id_erro ' ");

Só que não fuciona. Quando coloca direto, ou seja: id_cataloga_erro = id_cataloga_erro

Funciona.

Conseguiu compreender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido.

O problema estava numa variável que eu tinha esquecido de colocar: $exibe

 

$sql = SELECT campo FROM tabela

WHILE ($exibe = mysql_fetch_assoc($sql)){

$id_cataloga_erro = $exibe[id_cataloga_erro];

}

Agora funciona.

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.