$results = $zdb->execute($select);
 $result = $results->current();
 if ($result !== false) {
     $old_rank = $result->field_index;
     $query_list = array();
     if ($action == 'del') {
         $update = $zdb->update(DynamicFieldType::TABLE);
         $update->set(array('field_index' => new Expression('field_index-1')))->where->greaterThan('field_index', $old_rank)->equalTo('field_form', $form_name);
         $zdb->execute($update);
         $delete = $zdb->delete(DynamicFields::TABLE);
         $delete->where(array('field_id' => $field_id, 'field_form' => $form_name));
         $zdb->execute($delete);
         $delete = $zdb->delete(DynamicFieldType::TABLE);
         $delete->where(array('field_id' => $field_id, 'field_form' => $form_name));
         $zdb->execute($delete);
         $df = $dyn_fields->getFieldType($result->field_type);
         if ($df->hasFixedValues()) {
             $contents_table = DynamicFields::getFixedValuesTableName($field_id);
             $zdb->db->query('DROP TABLE IF EXISTS ' . $contents_table, Adapter::QUERY_MODE_EXECUTE);
         }
         deleteDynamicTranslation($result->field_name, $error_detected);
     } else {
         $direction = $action == "up" ? -1 : 1;
         $new_rank = $old_rank + $direction;
         $update = $zdb->update(DynamicFieldType::TABLE);
         $update->set(array('field_index' => $old_rank))->where(array('field_index' => $new_rank, 'field_form' => $form_name));
         $zdb->execute($update);
         $update = $zdb->update(DynamicFieldType::TABLE);
         $update->set(array('field_index' => $new_rank))->where(array('field_id' => $field_id, 'field_form' => $form_name));
         $zdb->execute($update);
     }