• User

    Aggiungere dati al DB senza duplicarli

    Sto cercando di scrivere uno script semplicissimo, di cui riposto una parte qui sotto. In pratica $DB_listname assume più valori (una parola), ed ogni volta che lo script viene attivato sul database viene creato un record.

    Il problema è che la parola è il nome di una città, e non voglio avere risultati duplicati, quindi se ho già roma e firenze, ma DB_listname corrisponde a roma, ancona, pescara, vorrei che fossero aggiunte soltanto ancona e pescara, dato che romaè già presente, ma non so come inserire un controllo di questo tipo.

    Riporto sotto il codice che mi duplica i risultati.

    [PHP]while($row = mysql_fetch_array($result)){

          $DB_Time      = time();
          $DB_listname = $row['name'];
    
               $query = "INSERT INTO list (name, description, entered, listorder, prefix, rssfeed, modified, active, owner)
                         VALUES('$DB_listname', 'description', now(), '0', '', '', '', '1', '1')";
               $DB_result = mysql_query($query) or die("Invalid query: " . mysql_error());
               $DB_id = mysql_insert_id();
    

    }
    [/PHP]


  • User Attivo

    Potresti prima di inserire i nuovi record, fare una query del tipo

    SELECT name FROM tabella WHERE name = $DB_listname LIMIT 1

    Se ti da risultato 0 esegui la query di inserimento che hai postato, se no passi all'altra città


  • User

    Mi rendo conto di essere una chiavica col php. mi dici come fare esattamente, altrimenti non lo capisco.
    Ho provato così ma non funziona per niente:
    [PHP]
    while($row = mysql_fetch_array($result)){

          $DB_Time      = time();
          $DB_listname = $row['name'];
    
          $query = "SELECT name FROM list WHERE name = '$DB_listname'";
    
          if (mysql_num_rows($result) > 0) {}else{
    
               $query = "INSERT INTO list (name, description, entered, listorder, prefix, rssfeed, modified, active, owner)
                         VALUES('$DB_listname', 'description', now(), '0', '', '', now(), '1', '1')";
               $DB_result = mysql_query($query) or die("Invalid query: " . mysql_error());
               $DB_id = mysql_insert_id();
    

    }
    }[/PHP]