1KA_F2F/utils/1kaUtils/1ka_ankete_deactive_v2_part2.php
2020-08-14 13:36:36 +02:00

199 lines
7.0 KiB
PHP

<?php
set_time_limit(1800); # 30 minut
/**
* Podatke neaktivnih anket, ki se ze nekaj casa niso spreminjale prenese iz _active tabel v navadne - arhivske tabele
*
* DODATNA SKRIPTA ZA TABELE srv_data_text, srv_data_textgrid, srv_data_checkgrid
*/
include_once('../../function.php');
// Anketa s katero zacnemo kopiranje (ker ne moremo vedeti do kje smo ze prisli)
$first_id = (isset($_GET['first_id']) ? $_GET['first_id'] : '1');
// aktivne ankete, ali mlajše od 3 mesecev (od zadnje spremembe, ali da so takrat pretekle)
// Prvic moramo iti cez vse stare neaktivne ankete (db_table = '0') - PROBLEM SO AKTIVNE (zaradi buga pri kopiranju)!!!
$sql = sisplet_query("SELECT * FROM srv_anketa
WHERE id > '0'
AND db_table = '1'
AND id > '".$first_id."'
LIMIT 200
");
if (!$sql) { echo mysqli_error($GLOBALS['connect_db']); die(); }
echo mysqli_num_rows($sql).'<hr>';
while ($row = mysqli_fetch_array($sql)) {
$s = sisplet_query("START TRANSACTION");
if (!$s) { echo mysqli_error($GLOBALS['connect_db']); die(); }
echo $row['id'].'<br />';
// srv_data_text
$sql1 = sisplet_query("INSERT INTO srv_data_text_active (spr_id, vre_id, text, text2, usr_id, loop_id)
SELECT d2.spr_id, d2.vre_id, d2.text, d2.text2, d2.usr_id, d2.loop_id
FROM srv_data_text d2, srv_spremenljivka s, srv_grupa g
WHERE d2.spr_id = s.id
AND s.gru_id = g.id
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$query = "DELETE d
FROM srv_data_text d, srv_spremenljivka s, srv_grupa g
WHERE d.spr_id = s.id
AND s.gru_id = g.id
AND g.ank_id = '$row[id]'";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 113 ('.$query.')<br>'; die(); }
// Se dodatno kopiranje za komentarje (kjer je spr_id=0)
$sql1 = sisplet_query("INSERT INTO srv_data_text_active (spr_id, vre_id, text, text2, usr_id, loop_id)
SELECT d2.spr_id, d2.vre_id, d2.text, d2.text2, d2.usr_id, d2.loop_id
FROM srv_data_text d2, srv_spremenljivka s, srv_grupa g
WHERE d2.spr_id = '0'
AND d2.vre_id = s.id AND d2.vre_id > '0'
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$query = "DELETE d
FROM srv_data_text d, srv_spremenljivka s, srv_grupa g
WHERE d.spr_id = '0'
AND d.vre_id = s.id AND d.vre_id > '0'
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 113 ('.$query.')<br>'; die(); }
// srv_data_textgrid
$sql1 = sisplet_query("INSERT INTO srv_data_textgrid_active (spr_id, vre_id, usr_id, grd_id, text, loop_id)
SELECT d2.spr_id, d2.vre_id, d2.usr_id, d2.grd_id, d2.text, d2.loop_id
FROM srv_data_textgrid d2, srv_spremenljivka s, srv_grupa g
WHERE d2.spr_id = s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$query = "DELETE d
FROM srv_data_textgrid d, srv_spremenljivka s, srv_grupa g
WHERE d.spr_id = s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 113 ('.$query.')<br>'; die(); }
// Se dodatno za kombinirane tabele
$sql1 = sisplet_query("INSERT INTO srv_data_textgrid_active (spr_id, vre_id, usr_id, grd_id, text, loop_id)
SELECT d2.spr_id, d2.vre_id, d2.usr_id, d2.grd_id, d2.text, d2.loop_id
FROM srv_data_textgrid d2, srv_spremenljivka s, srv_grupa g, srv_grid_multiple m
WHERE d2.spr_id = m.spr_id AND m.parent=s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$query = "DELETE d
FROM srv_data_textgrid d, srv_spremenljivka s, srv_grupa g, srv_grid_multiple m
WHERE d.spr_id = m.spr_id AND m.parent=s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 113 ('.$query.')<br>'; die(); }
// srv_data_checkgrid
$sql1 = sisplet_query("SELECT grid.*
FROM srv_data_checkgrid grid, srv_spremenljivka s, srv_grupa g
WHERE grid.spr_id = s.id
AND s.gru_id = g.id
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$values = "";
$i = 0;
while ($row1 = mysqli_fetch_assoc($sql1)) {
if ($values != "") $values .= ", ";
$vals = "";
foreach ($row1 AS $key => $val) {
if ($vals != "") $vals .= ", ";
if ($val != null)
$vals .= "'$val'";
else
$vals .= "NULL";
}
$values .= "($vals)";
$loop_id = $row1['loop_id'] == null ? " IS NULL" : " = '".$row1['loop_id']."'";
$query = "DELETE FROM srv_data_checkgrid WHERE spr_id='$row1[spr_id]' AND vre_id='$row1[vre_id]' AND usr_id='$row1[usr_id]' AND loop_id $loop_id";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 111 ('.$query.')<br>'; die(); }
// force mysql query
if ($i++ >= 500) {
if ($values != "") {
$query = "INSERT INTO srv_data_checkgrid_active VALUES $values";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 112a ('.$query.')<br>'; die(); }
}
$values = "";
$i = 0;
}
}
if ($values != "") {
$query = "INSERT INTO srv_data_checkgrid_active VALUES $values";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 112 ('.$query.')<br>'; die(); }
}
// Se dodatno za kombinirane tabele
$sql1 = sisplet_query("INSERT INTO srv_data_checkgrid_active (spr_id, vre_id, usr_id, grd_id, loop_id)
SELECT d2.spr_id, d2.vre_id, d2.usr_id, d2.grd_id, d2.loop_id
FROM srv_data_checkgrid d2, srv_spremenljivka s, srv_grupa g, srv_grid_multiple m
WHERE d2.spr_id = m.spr_id AND m.parent=s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'
");
if (!$sql1) { echo mysqli_error($GLOBALS['connect_db']); die(); }
$query = "DELETE d
FROM srv_data_checkgrid d, srv_spremenljivka s, srv_grupa g, srv_grid_multiple m
WHERE d.spr_id = m.spr_id AND m.parent=s.id
AND s.gru_id = g.id AND s.gru_id > '0'
AND g.ank_id = '$row[id]'";
$s = sisplet_query($query);
if (!$s) { echo mysqli_error($GLOBALS['connect_db']).' 113 ('.$query.')<br>'; die(); }
// Ko gremo prvic cez ne popravljamo tega
/*$s = sisplet_query("UPDATE srv_anketa SET db_table = '0' WHERE id = '$row[id]'");
if (!$s) { echo mysqli_error($GLOBALS['connect_db']); die(); }*/
//$s = sisplet_query("ROLLBACK");
$s = sisplet_query("COMMIT");
if (!$s) { echo mysqli_error($GLOBALS['connect_db']); die(); }
flush(); @ob_flush();
}
?>