Changeset 1109 for trunk/common


Ignore:
Timestamp:
03/16/10 00:23:44 (2 years ago)
Author:
Prostu
Message:

Added a new button in the page generated by /admin/[round]?action=sterge-runda
that erases all the information regarding the round from the database.
Information relation to a round is found in the following tables:
ia_job_test
ia_job
ia_parameter_value
ia_round_task
ia_user_round
ia_round_task
ia_round

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/common/db/round.php

    r1094 r1109  
    423423} 
    424424 
     425function round_delete($round_id) { 
     426    log_assert(is_round_id($round_id)); 
     427 
     428    // Delete round from cache 
     429    _round_cache_delete($round_id); 
     430 
     431    // Delete job_tests 
     432    $query = sprintf("SELECT `id` 
     433                      FROM `ia_job` 
     434                      WHERE `round_id` = %s", 
     435                      db_quote($round_id)); 
     436 
     437    $job_ids_fetched = db_fetch_all($query); 
     438 
     439    $job_ids = array(); 
     440    foreach ($job_ids_fetched as $job) { 
     441        $job_ids[] = (int)$job["id"]; 
     442    } 
     443 
     444    if (count($job_ids)) { 
     445        $formated_job_ids = implode(", ", array_map("db_quote", $job_ids)); 
     446        $query = sprintf("DELETE FROM `ia_job_test` 
     447                          WHERE `job_id` IN (%s)", 
     448                          $formated_job_ids); 
     449        db_query($query); 
     450 
     451        $query = sprintf("DELETE FROM `ia_job` 
     452                          WHERE `id` IN (%s)", 
     453                          $formated_job_ids); 
     454        db_query($query); 
     455    } 
     456 
     457    // Delete entries from ia_parameter_value... 
     458    $query = sprintf("DELETE FROM `ia_parameter_value` 
     459                      WHERE `object_type` = 'round' 
     460                        AND `object_id` = %s", 
     461                      db_quote($round_id)); 
     462    db_query($query); 
     463 
     464    // Delete entries from round-task 
     465    $query = sprintf("DELETE FROM `ia_round_task` 
     466                      WHERE `round_id` = %s", 
     467                      db_quote($round_id)); 
     468    db_query($query); 
     469 
     470    // Delete entries from user-round 
     471    $query = sprintf("DELETE FROM `ia_user_round` 
     472                      WHERE `round_id` = %s", 
     473                      db_quote($round_id)); 
     474    db_query($query); 
     475 
     476    // Delete entries from round-task 
     477    $query = sprintf("DELETE FROM `ia_round_task` 
     478                      WHERE `round_id` = %s", 
     479                      db_quote($round_id)); 
     480    db_query($query); 
     481 
     482    // Delete entries from ia_score 
     483    $query = sprintf("DELETE FROM `ia_score` 
     484                      WHERE `round_id` = %s", 
     485                      db_quote($round_id)); 
     486    db_query($query); 
     487 
     488    // ACTUALLY DELETE THE ROUND 
     489    $query = sprintf("DELETE FROM `ia_round` 
     490                      WHERE `id` = %s", 
     491                      db_quote($round_id)); 
     492    db_query($query); 
     493} 
     494 
    425495?> 
Note: See TracChangeset for help on using the changeset viewer.