Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Controllo/cancellazione uguale email in una tabella DB

    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?

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,650
    spazi? http://it.php.net/trim
    codifica? http://it.php.net/utf8_encode

    Comunque puoi fare tutto senza php in 3 query

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.