Hallo Leute, folgender Codeauszug soll eigentlich alle doppelten bzw, mehrfach vorhanden Records aus der Datenbank entfernen. Die dritte Normalform soll gewart bleiben! Dummerweise entfernt er nicht nur die doppelten Records, sondern beide Dateien. Zumindest eine sollte jedoch in der Datenbank verbleiben. sowohl die unset-Anweisungen als auch das Rücksetzten des counters bewirken nix. Weiß jemand Rat?
EDIT:
folgendes Query wurde ausgeführt
Das heist, mein Code ist soweit korrekt. Allerdings darf ich nicht nach dem Dateinamen suchen, sondern muss mir den PK greifen, damit mindestens eine Datei in der Datenbank verbleibt. Was denkt Ihr?
PHP:
foreach ($Files as $file) {
array_push($filenames, $file->dateiname);
}
$Info = array_count_values($filenames);
foreach ($Info as $value => $counter) {
if ($counter > 1) {
unset($Info[$value]);
$connection->createCommand()
->delete('dateianhang', ['dateiname' => $value])
->execute();
unset($filenames[$value]);
array_push($showdeletefiles, $value);
$counter = 0;
}
}
folgendes Query wurde ausgeführt
SQL:
DELETE FROM `dateianhang` WHERE `dateiname`='817_1467699625908067936_Punk4.jpg.jpg'
Zuletzt bearbeitet: