Ir para conteúdo

POWERED BY:

Arquivado

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

NexXxus

Atualizando campo no mySQL

Recommended Posts

Pessoal, estou com um problema, não estou conseguindo atualizar um campo de código no mySQL, onde o valor é vazio, transformando para um valor numérico. Há 500 registros e gostaria de saber se há um código em PHP que atualize esse campo, tentei o código abaixo mas não funcionou:

 

<?php
include "conecta.php";

$sql = "SELECT * FROM produtos";
$exe_sql = mysql_query($sql);
$contador = 1;
while($linha = mysql_fetch_array($exe_sql))
{
	$cod_prod = $linha["cod_prod"];
	if($cod_prod == "")
	{						
		$ins = "UPDATE `sportecia`.`produtos` SET `cod_prod` = '$contador'";
		$x_ins = mysql_query($ins);			
		echo "$contador<br>";			
		$contador++;	
	}	
}			
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse código seu não funcionou porque um UPDATE sem um WHERE atualiza todas as linhas da tabela, então com certeza, ao fim do loop no PHP toda sua coluna cod_prod deve ter ficado com o último valor.

 

talvez se você tentar diretamente no prompt do MySQL, veja só:

 

Uma tabela com uma coluna cod_prod vazia:

mysql> select * from `dados`;
+----+----------+
| id | cod_prod |
+----+----------+
| 1 | 	|
| 2 | 	|
| 3 | 	|
| 4 | 	|
+----+----------+
4 rows in set (0.00 sec)

Ai vamos popular com um número sequencial:

mysql> set @a:=0;
Query OK, 0 rows affected (0.00 sec)

mysql> update `dados` d set d.`cod_prod`=(select @a:=@a+1);
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0

mysql> select * from `dados`;
+----+----------+
| id | cod_prod |
+----+----------+
| 1 | 1 	|
| 2 | 2 	|
| 3 | 3 	|
| 4 | 4 	|
+----+----------+
4 rows in set (0.00 sec)

Viu, bem simples e diretamente no banco de dados, sem usar PHP...

 

;)

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.