Ho un db con alcune migliaia di indirizzi email, però mi sono accorto che ce ne sono molti doppi, perchè a volte sono stati inseriti con uno spazio vuoto prima o dopo.
Poichè un controllo manuale è impensabile, ho cercato di far fare il lavoro a PHP.
Così, ho scritto questo codice:
L'intenzione sarebbe stata, cioè, di fare le seguenti operazioni:Codice PHP:
$empty = " ";
$result = mysql_query("SELECT * FROM `coll` WHERE `email` LIKE '%$empty%'");
while ($row = mysql_fetch_array($result)) {
$oldEmail = $row["email"];
$newEmail=trim($oldEmail);
$query2 = "UPDATE `coll` SET
email = '$newEmail'
WHERE email = $oldEmail";
$result2 = mysql_query($query2)
or die("Query failed");
$result1 = mysql_query("SELECT * FROM `coll` WHERE `email` = '$newEmail'");
$mailTot = mysql_num_rows($result1);
if ($mailTot !== 1) {
$doublelist = $doublelist . $newEmail . "
";
}
}
echo $doublelist;
- trovare gli indirizzi email in cui c'è uno spazio vuoto
- eliminare lo spazio vuoto
- aggiornare il db sostituendo la vecchia mailbox con la nuova corretta
- controllare la presenza di doppioni
- nel caso, aggiungerli ad una lista
- fare un echo della lista
A questo punto, in base ai risultati ottenuti, avrei deciso come procedere alla eliminazione dei doppioni
Però la query di update fallisce regolarmente!
Perchè mai?
![]()