function db_planet_list_delete_by_owner($ui_owner_id)
{
    // if(!($si_owner_id = intval($ui_owner_id))) return false;
    if (!($si_owner_id = idval($ui_owner_id))) {
        return false;
    }
    classSupernova::db_del_record_list(LOC_PLANET, "`id_owner` = {$si_owner_id}");
    classSupernova::db_del_record_list(LOC_UNIT, "`unit_location_type` = " . LOC_PLANET . " AND `unit_player_id` = " . $si_owner_id);
    // Очереди очистятся автоматически по FOREIGN KEY
    return true;
}
Exemple #2
0
 public static function db_changeset_apply($db_changeset, $flush_delayed = false)
 {
     $result = true;
     if (!is_array($db_changeset) || empty($db_changeset)) {
         return $result;
     }
     foreach ($db_changeset as $table_name => &$table_data) {
         // TODO - delayed changeset
         /*
         if(static::db_transaction_check(false) && !$flush_delayed && ($table_name == 'users' || $table_name == 'planets' || $table_name == 'unit'))
         {
           static::db_changeset_delay($table_name, $table_data);
           continue;
         }
         */
         foreach ($table_data as $record_id => &$conditions) {
             static::db_changeset_condition_compile($conditions, $table_name);
             if ($conditions['action'] != SQL_OP_DELETE && !$conditions[P_FIELDS_STR]) {
                 continue;
             }
             if ($conditions['action'] == SQL_OP_DELETE && !$conditions[P_WHERE_STR]) {
                 continue;
             }
             // Защита от случайного удаления всех данных в таблице
             if ($conditions[P_LOCATION] != LOC_NONE) {
                 //die('spec ops supernova.php line 928 Добавить работу с кэшем юнитов итд');
                 switch ($conditions['action']) {
                     case SQL_OP_DELETE:
                         $result = classSupernova::db_del_record_list($conditions[P_LOCATION], $conditions[P_WHERE_STR]) && $result;
                         break;
                     case SQL_OP_UPDATE:
                         $result = classSupernova::db_upd_record_list($conditions[P_LOCATION], $conditions[P_WHERE_STR], $conditions[P_FIELDS_STR]) && $result;
                         break;
                     case SQL_OP_INSERT:
                         $result = classSupernova::db_ins_record($conditions[P_LOCATION], $conditions[P_FIELDS_STR]) && $result;
                         break;
                     default:
                         die('Неподдерживаемая операция в classSupernova::db_changeset_apply');
                         // case SQL_OP_REPLACE: $result = $result && doquery("REPLACE INTO {{{$table_name}}} SET {$fields}"); break;
                 }
             } else {
                 $result = doquery($conditions[P_QUERY_STR]) && $result;
             }
         }
     }
     return $result;
 }
function db_unit_list_delete($user_id = 0, $unit_location_type, $unit_location_id, $unit_snid = 0)
{
    return classSupernova::db_del_record_list(LOC_UNIT, "`unit_location_type` = {$unit_location_type} AND `unit_location_id` = {$unit_location_id}" . ($user_id = idval($user_id) ? " AND `unit_player_id` = {$user_id}" : '') . ($unit_snid = idval($unit_snid) ? " AND `unit_snid` = {$unit_snid}" : ''));
}
function db_unit_list_delete($user_id = 0, $unit_location_type, $unit_location_id, $unit_snid = 0)
{
    return classSupernova::db_del_record_list(LOC_UNIT, "`unit_location_type` = {$unit_location_type} AND `unit_location_id` = {$unit_location_id}" . ($user_id = idval($user_id) ? " AND `unit_player_id` = {$user_id}" : '') . ($unit_snid = idval($unit_snid) ? " AND `unit_snid` = {$unit_snid}" : ''));
    return doquery("DELETE FROM {{unit}}\n    WHERE unit_location_type = {$unit_location_type} AND unit_location_id = {$unit_location_id}" . ($user_id = idval($user_id) ? " AND unit_player_id = {$user_id}" : '') . ($unit_snid = idval($unit_snid) ? " AND unit_snid = {$unit_snid}" : ''));
}