artikel löschen - bug ???
Verfasst: Mi 26. Jan 2005, 13:18
hallo...
bei der betrachtung des quelltextes von version 4.4.4 ist mir beim löschen eines artikels folgendes kuriosum aufgefallen:
um den artikel-eintrag in der tabelle tpl_conf zu löschen wird in der art_lang tabelle der entsprechende fk-selektiert. jedoch findet dies statt nachdem ein delete auf art_lang schon ausgeführt wurde. d.h. das select sollte meiner meinung nach nichts gültiges liefern.
desweiteren ist mir aufgefallen, das beim löschen eines artikels - konkret nach dem löschen der tabelle tpl_conf die relation zur tabelle container_conf nicht berücksichtigt wird. ich weiß nicht ob da eine absicht hinteresteckt, deswegen frage ich mal nach - ich weiß z.B. nicht ob es dann im Zusammenhang mit Mehrsprachigkeit zu Konflikten kommen könnte - deshalb frag ich mal nach
meine anpassung in der functions.con.php sieht dann folgendermaßen aus (function conDeleteart)
danke schonmal im vorraus
grüße
andy
bei der betrachtung des quelltextes von version 4.4.4 ist mir beim löschen eines artikels folgendes kuriosum aufgefallen:
Code: Alles auswählen
$sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
$db->query($sql);
$sql = "SELECT idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."' AND idlang = '".$lang."'";
$db->query($sql);
$db->next_record();
$tmp_idtplcfg = $db->f('idtplcfg');
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
desweiteren ist mir aufgefallen, das beim löschen eines artikels - konkret nach dem löschen der tabelle tpl_conf die relation zur tabelle container_conf nicht berücksichtigt wird. ich weiß nicht ob da eine absicht hinteresteckt, deswegen frage ich mal nach - ich weiß z.B. nicht ob es dann im Zusammenhang mit Mehrsprachigkeit zu Konflikten kommen könnte - deshalb frag ich mal nach

meine anpassung in der functions.con.php sieht dann folgendermaßen aus (function conDeleteart)
Code: Alles auswählen
$sql = "SELECT idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."' AND idlang = '".$lang."'";
$db->query($sql);
$db->next_record();
$tmp_idtplcfg = $db->f('idtplcfg');
$sql = "DELETE FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
// Löschen aus container_conf
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
grüße
andy