Ik heb een database waarin urengeregistreerd worden. Dat registreren gaat mbv een PHP pagina waar de betreffende werknemers heen surfen en het invullen.
Echter, om ze vaak met 2 mensen op pad zijn is het zo dat ze tegelijk voor 2 werknemers kunnen registreren. Natuurlijk gaat dat ook fout. Er zijn medewerkers die in hun eentje werken, en een aantal van hen hebben in het invul formulier 2x dezelfde naam in gevuld. Met als gevolg dat de database nu dus niet meer goed is omdat er dubbele dingen instaan.
Ik gebruik natuurlijk een unique ID, dat wordt alsvolgt opgebouwd:
Timestamp, plus voor de eerste werknemer een 1, en voor de 2de een 2.
Nu wil ik dus een aantal x wat dingen met een 2 erachter eruit slopen, MAAR niet allemaal!
Hoe ga ik dat voor elkaar krijgen?
In feite komt het er dus op neer dat de regel exact hetzelfde is, behalve het ID, dat verschilt aan het eind dus, dat is of een 2 of een 1.
$result = mysql_query("Select naam from users");
while($row=mysql_fetch_assoc($result))
{
$resultaat = mysql_query("Select count(id) from users where naam=".$row['naam']);
if($resultaat > 1) {
//verwijderen met dat id
}
}
$result = mysql_query("Select naam from users");
while($row=mysql_fetch_assoc($result))
{
$resultaat = mysql_query("Select id from users where naam=".$row['naam']);
if(mysql_affected_rows()>1) {
while($rowaat = mysql_fetch_assoc($result))
{
mysql_query("DELETE FROM users WHERE id=".$rowaat['id']) or die (mysql_error());
}
}
}
Zo eventjes een heel erg late reactie, maar het werkt niet goed.
Hij voert het bestand wel uit, maar hij delete geen dubbele gegevens, mijn aangepaste code is dit:
Het is veel makkerlijk om het te doen zoals ik zei...
1. Gooi alle unieke in een tijdelijke tabel;
2. Leeg je originele tabel;
3. Zet alles weer terug.
Klaar!