Crew algemeen |
|
Ga eerst eens kijken waarom er uberhaupt dubbelen in de database zitten, dat is veel belangrijker dan ze er uit halen.
Dan gooi je eerst alles dubbel weg (ik ga ervan uit dat je ergens een auto_increment kolom hebt, anders was het met DISTINCT in een SELECT wel gelukt):
<?php
// veld1 is dus je auto_increment, niet ophalen!
$query = "
SELECT DISTINCT veld2, veld3, veld4
FROM tabel";
$result = mysql_query($query, $link);
if(!$result) {
// balen...
exit;
}
if(!mysql_query("TRUNCATE tabel")) {
// nogmaals: balen...
}
while($row = mysql_fetch_assoc($result)) {
$query = "
INSERT INTO tabel
(veld2, veld3, veld4)
VALUES(
'" . mysql_real_escape_string($row['veld2'], $link) . "',
'" . mysql_real_escape_string($row['veld3'], $link) . "',
'" . mysql_real_escape_string($row['veld4'], $link) . "'
)";
if(!mysql_query($query, $link)) {
// godver, zet maar een backup terug! :-)
exit;
}
}
<?php // veld1 is dus je auto_increment, niet ophalen! $query = " SELECT DISTINCT veld2, veld3, veld4 FROM tabel"; if(!$result) { // balen... } // nogmaals: balen... } $query = " INSERT INTO tabel (veld2, veld3, veld4) VALUES( )"; // godver, zet maar een backup terug! :-) } }
Zoiets, ongeveer ;) |