Scusa, ma come è possibile che due prodotti abbiano lo stesso ID?
Di solito l'ID serve proprio per iedntificare univocamente un record del db.
Io quindi ti consiglierei di settare products_id come primary key e auto increment, in questo modo inserndo un nuovo record nela tabella (senza inserire il campo id_products), verrà automaticamente incrementato il campo id_products, e così non avrai mai due rcord con lo stesso id.
Tornando alla tua query: non funziona perchè c'è un errore di sintassi:
codice:
 
while (!$category_products->EOF) {               
$sql = "update " . TABLE_PRODUCTS . " set products_status='" . $products_status . "' where products_id='" . $category_products->fields['products_id'] . "' and deposito_codice='" . $category_products->fields['products_id'] . "'";               $db->Execute($sql);               
$category_products->MoveNext();