function block_clear() { $uselessbids = $usingbids = $bids = array(); $bids = C::t('common_block')->fetch_all_bid_by_blocktype(0, 1000); $usingbids = array_keys(C::t('common_template_block')->fetch_all_by_bid($bids)); $uselessbids = array_diff($bids, $usingbids); if (!empty($uselessbids)) { C::t('common_block_item')->delete_by_bid($uselessbids); C::t('common_block_item_data')->delete_by_bid($uselessbids); C::t('common_block_favorite')->delete_by_bid($uselessbids); C::t('common_block_permission')->delete_by_bid_uid_inheritedtplname($uselessbids); C::t('common_block')->delete($uselessbids); C::t('common_block')->optimize(); C::t('common_block_item')->optimize(); block_delete_pic($uselessbids); } }
function block_clear() { $uselessbids = $usingbids = $bids = array(); $query = DB::query("SELECT bid FROM " . DB::table('common_block') . " WHERE blocktype='0' ORDER BY bid DESC LIMIT 1000"); while ($value = DB::fetch($query)) { $bids[] = intval($value['bid']); } $query = DB::query("SELECT bid FROM " . DB::table('common_template_block') . " WHERE bid IN (" . dimplode($bids) . ")"); while ($value = DB::fetch($query)) { $usingbids[] = intval($value['bid']); } $uselessbids = array_diff($bids, $usingbids); if (!empty($uselessbids)) { $delids = dimplode($uselessbids); DB::query("DELETE FROM " . DB::table('common_block_item') . " WHERE bid IN ({$delids})"); DB::query("DELETE FROM " . DB::table('common_block_item_data') . " WHERE bid IN ({$delids})"); DB::query("DELETE FROM " . DB::table('common_block_favorite') . " WHERE bid IN ({$delids})"); DB::delete('common_block_permission', 'bid IN (' . $delids . ')'); DB::query("DELETE FROM " . DB::table('common_block') . " WHERE bid IN ({$delids})"); DB::query("OPTIMIZE TABLE " . DB::table('common_block'), 'SILENT'); DB::query("OPTIMIZE TABLE " . DB::table('common_block_item'), 'SILENT'); block_delete_pic($uselessbids); } }