Macht man das Ganze in korrekter Reihenfolge und für alle Sprachen, klappt es auch. Mein Vorschlag wäre deshalb folgender Code:
Code: Alles auswählen
function conDeleteart($idart)
{
global $db, $cfg, $lang;
$sql = "SELECT * FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".$idart."'";
$db->query($sql);
while ( $db->next_record() ) {
$idcatart[] = $db->f("idcatart");
}
##################################################
# set keywords
$keycode[1][1]="";
SaveKeywordsforart($keycode,$idart,"auto",$lang);
SaveKeywordsforart($keycode,$idart,"self",$lang);
if ( is_array($idcatart) ) {
foreach ($idcatart AS $value) {
//********* delete from code table **********
$sql = "DELETE FROM ".$cfg["tab"]["code"]." WHERE idcatart = '".$value."'";
$db->query($sql);
//****** delete from 'stat'-table ************
$sql = "DELETE FROM ".$cfg["tab"]["stat"]." WHERE idcatart = '".$value."'";
$db->query($sql);
}
}
$sql = "SELECT * FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '".$idart."'";
$db->query($sql);
while ( $db->next_record() ) {
$idartlang[] = $db->f("idartlang");
}
if ( is_array($idartlang) ) {
foreach ($idartlang AS $value) {
//********* delete from content table **********
$sql = "DELETE FROM ".$cfg["tab"]["content"]." WHERE idartlang = '".$value."'";
$db->query($sql);
}
}
$sql = "DELETE FROM ".$cfg["tab"]["cat_art"]." WHERE idart = '".$idart."'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["art"]." WHERE idart = '".$idart."'";
$db->query($sql);
# Collect the idtplcfg's for article:
$sql = "SELECT idtplcfg FROM ".$cfg["tab"]["art_lang"]." WHERE idart='$idart'";
$db->query($sql);
while ($db->next_record()) $tmp_idtplcfg[] = $db->f("idtplcfg");
# Delete all corresponding entries in tpl_conf and container_conf:
foreach ($tmp_idtplcfg as $tmp_idtplcfg) {
$sql = "DELETE FROM ".$cfg["tab"]["tpl_conf"]." WHERE idtplcfg='$tmp_idtplcfg'";
$db->query($sql);
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '$tmp_idtplcfg'";
$db->query($sql);
}
$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);
$sql = "DELETE FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '".$tmp_idtplcfg."'";
$db->query($sql);
}