segunda-feira, 31 de dezembro de 2012

Retirar valores duplicados em linha de um campo do MySql com Php


Imagine que você tenha um campo no seu banco de dados com o nome Cor.
Esse campo possui várias cores, porém algumas estão duplicadas.
Exemplo: Branco, Preto, Azul, Azul, Amarelo, Preto, branco.
Se você não deseja essa duplicação, veja como deve proceder.

Primeiramente lembrando que o PHP é case-sensitive, ou seja, Branco e branco são diferentes. Então devemos atualizar esse campo usando a função do MySql UPPER, para deixá-los em maiúsculo e ficarem iguais. Update 'Tabela_Cor' set cor=  UPPER(cor). Agora sim vamos ao procedimento.

<?php require_once('../../Connections/conn_cor_c.php');//Conexão com o BD
mysql_select_db($database_conn_cor_c, $conn_cor_c);

$query_cor = "SELECT id, color FROM project_1 where color<>'' ";//Seleciona a tabela que tem o campo cor

$cor = mysql_query($query_cor, $conn_cor_c) or die(mysql_error());
$row_cor = mysql_fetch_array($cor);

 do {
$id=$row_cor['id'];
$prt1=explode(',',$row_cor['color']);// Essa função desmembra a string em um array
$res=array_unique($prt1);// Essa função Remove valores duplicados desse array
$res_final=implode(',',$res);//Essa função transforma o array sem valores duplicados em string novamente

$sql_update = "Update project_1 set color='$res_final' where id ='$id'";// Essa instrução atualiza o campo color no BD sem os valores duplicados
 $exe_update = mysql_query($sql_update, $conn_cor_c) or die (mysql_error());

/*echo "<pre>";
print_r($res_final);
echo "</pre>";*/

} while ($row_cor = mysql_fetch_array($cor));

mysql_free_result($cor);

?>

É isso aí, e adeus duplicados !!!

Nenhum comentário :

Postar um comentário

Pergunte, inquira, descubra...