Seite 1 von 1

Kategorien lassen sich nicht sperren

Verfasst: Mo 28. Apr 2008, 12:44
von Nakoda
Hallo zusammen,

hab ein kleines Problem mit dem schützen von Kategorien.
Ich erhalte dann folgendes im Errolog:

Code: Alles auswählen

[28-Apr-2008 13:25:21] /contenido/main.php?area=con&action=con_makepublic&frame=2&idcat=87&public=1&contenido=850d39c8b0496b1e5b7af97e01e55e28 MySQL error 1366: Incorrect integer value: '' for column 'public' at row 1
UPDATE con_cat_lang SET public='', lastmodified = '2008-04-28 13:25:21' WHERE idcat='87' AND idlang='1'
Die Meldung ist ja auch soweit verständlich. Denn er bekommt ja keinen Wert. Die Frage ist nur warum will er NULL eintragen obwohl 'ne '0' doch richtig wäre? Kann mir da jemand weiterhelfen?
Eine Suche mit Kategorie schützen Freigeben hat mir leider nicht das benötigte Ergebnis geliefert.
Danke schon mal im voraus.

Verfasst: Mo 28. Apr 2008, 15:02
von emergence
erstmal verschoben...

betroffene funktion

Code: Alles auswählen

function conMakePublic($idcat, $lang, $public)
{
    global $db, $cfg;
    
	$a_catstring = conDeeperCategoriesArray($idcat);
	foreach ($a_catstring as $value) {
		$sql = "UPDATE ".$cfg["tab"]["cat_lang"].
			   " SET public='".!$public."', lastmodified = '".date("Y-m-d H:i:s").
			   "' WHERE idcat='$value' AND idlang='$lang' ";
		$db->query($sql);
	}	
}
naja das !$public ist nicht gerade ideal...

sag welche mysql version hast du im einsatz ?

Verfasst: Mo 28. Apr 2008, 16:48
von timo.trautmann_4fb
Fix für nächstes Release checkin:

Code: Alles auswählen

function conMakePublic($idcat, $lang, $public)
{
    global $db, $cfg;
    $public = (int) $public;
    if ($public != 1) {
        $public = 0;
    }
    
	$a_catstring = conDeeperCategoriesArray($idcat);
	foreach ($a_catstring as $value) {
		$sql = "UPDATE ".$cfg["tab"]["cat_lang"].
			   " SET public='".$public."', lastmodified = '".date("Y-m-d H:i:s").
			   "' WHERE idcat='$value' AND idlang='$lang' ";
		$db->query($sql);
	}	
}