Index: trunk/core/units/general/cat_dbitem.php =================================================================== diff -u -r2095 -r2262 --- trunk/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 2095) +++ trunk/core/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 2262) @@ -109,6 +109,12 @@ return $ret; } + /** + * Deletes item from categories + * + * @param Array $delete_category_ids + * @author Alex + */ function DeleteFromCategories($delete_category_ids) { $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); // because item was loaded before by ResourceId @@ -137,7 +143,7 @@ $primary_cat_id = $this->Conn->GetCol( sprintf($sql, $ci_table, $resource_id) ); if( count($primary_cat_id) == 0 ) { - $sql = 'REPLACE INTO %s (CategoryId,ItemResourceId,PrimaryCat) VALUES (%s,%s,1)'; + $sql = 'UPDATE %s SET PrimaryCat = 1 WHERE (CategoryId = %s) AND (ItemResourceId = %s)'; $this->Conn->Query( sprintf($sql, $ci_table, reset($cats_left), $resource_id ) ); } } Index: trunk/kernel/units/general/cat_dbitem.php =================================================================== diff -u -r2095 -r2262 --- trunk/kernel/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 2095) +++ trunk/kernel/units/general/cat_dbitem.php (.../cat_dbitem.php) (revision 2262) @@ -109,6 +109,12 @@ return $ret; } + /** + * Deletes item from categories + * + * @param Array $delete_category_ids + * @author Alex + */ function DeleteFromCategories($delete_category_ids) { $id_field = $this->Application->getUnitOption($this->Prefix, 'IDField'); // because item was loaded before by ResourceId @@ -137,7 +143,7 @@ $primary_cat_id = $this->Conn->GetCol( sprintf($sql, $ci_table, $resource_id) ); if( count($primary_cat_id) == 0 ) { - $sql = 'REPLACE INTO %s (CategoryId,ItemResourceId,PrimaryCat) VALUES (%s,%s,1)'; + $sql = 'UPDATE %s SET PrimaryCat = 1 WHERE (CategoryId = %s) AND (ItemResourceId = %s)'; $this->Conn->Query( sprintf($sql, $ci_table, reset($cats_left), $resource_id ) ); } }