Ciao ragazzi ho una tabella degli utenti dove voglio controllare che non ci siano utenti con la stessa email e, se ci sono, cancellarne uno.
Ho composto questo script:
Codice PHP:
<?php
require_once('connections/connections.php');
mysql_select_db($database_connections, $connections);
$query_utenti = "SELECT subscriber_id, email FROM pommo_subscribers";
$utenti = mysql_query($query_utenti, $connections) or die(mysql_error());
$row_utenti = mysql_fetch_assoc($utenti);
$totalRows_utenti = mysql_num_rows($utenti);
do
{
$query_utenti2 = "SELECT subscriber_id, email FROM pommo_subscribers WHERE subscriber_id != '" . $row_utenti['subscriber_id'] . "'";
$utenti2 = mysql_query($query_utenti2, $connections) or die(mysql_error());
$row_utenti2 = mysql_fetch_assoc($utenti2);
$totalRows_utenti2 = mysql_num_rows($utenti2);
do
{
echo $row_utenti['email'] . $row_utenti['subscriber_id'] . " - " . $row_utenti2['email'] . $row_utenti2['subscriber_id'] . "
";
if($row_utenti['email']==$row_utenti2['email'])
{
//$query = "DELETE FROM pommo_subscribers WHERE email = " . $row_utenti['email'];
//mysql_query($query);
echo "
" . "<font color=\"#FF0000\">Cancellato</font>" . "
" . "
";
}
}while($row_utenti2 = mysql_fetch_assoc($utenti2));
}while($row_utenti = mysql_fetch_assoc($utenti));
Il primo ciclo si tira fuori tutti gli utenti, il secondo tutti gli utenti dove l'id non è lo stesso della query precedente. se le 2 email sono uguali allora esegue lo script alternativo che per ora, in fase di test è solo una scritta rossa.
Ovvviamente un'iterazione dentro un'iterazione (con circa 300 record del db) genera una pagina lunghissima. Mi sono però reso conto che certe email vengono riconosciute come uguali, altre (che sono palesemente uguali) non vengono riconosciute dall'if....praticamente è come se per lui si chiamassero diversamente! Ho profato anche con === invece di == ma quello si riferisce solo all'uguaglianza del tipo di variabile.
Qualcuno mi sa dire come mai non riconosce alcune stringhe palesemente uguali ed altre si?