NexXxus 0 Denunciar post Postado Novembro 7, 2009 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
João Batista Neto 448 Denunciar post Postado Novembro 7, 2009 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