- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aggiungere dati al DB senza duplicarli
-
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]
-
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à
-
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]