215 lines
10 KiB
PHP
215 lines
10 KiB
PHP
![]() |
<?php
|
||
|
/**
|
||
|
* Pobrisemo ankete z vsemi podatki ki:
|
||
|
* - imajo vec kot 500 vprasanj
|
||
|
*
|
||
|
* - Izločimo ankete, v katerih se pojavljajo vprašanja, ki so sicer zelo redka (sestavljena tabela, SN imena, Vsota, Lokacija, Kvota, Heatmap).
|
||
|
* - št. ustreznih odgovorov - status 6 (20)
|
||
|
* - št. spremenljivk (vsaj 5 vprašanj)
|
||
|
* - ni v naslovu ali opisu ali Note (polja Internal survey name, Published survey name, Note): test**, trial, poskus*,
|
||
|
* - Vzamemo ankete od 1.1.2017 naprej.
|
||
|
* - št. spremenljivk (brisanje ce nima nobene!)
|
||
|
* - št. odgovorov (brisanje ce nima nobenega!)
|
||
|
*
|
||
|
* Iz izbranih anket naredimo vzorec 200 in samo za teh 200 izvozimo podatke. Upamo, da med 200 najdemo 100 >ustreznih<.
|
||
|
*/
|
||
|
|
||
|
// Ce brisemo ali samo pregledujemo
|
||
|
$delete = (isset($_GET['delete'])) ? $_GET['delete'] : 0;
|
||
|
|
||
|
// Varnostno
|
||
|
$delete = 0;
|
||
|
|
||
|
|
||
|
// Zgradimo ustrezen query za filtriranje anket
|
||
|
if(isset($_GET['type']) && $_GET['type'] != ''){
|
||
|
|
||
|
// Limit stevila anket
|
||
|
$limit = (isset($_GET['limit'])) ? $_GET['limit'] : 100;
|
||
|
|
||
|
$query = paradata_buildClearQuery($_GET['type'], $limit);
|
||
|
|
||
|
$sqlA = sisplet_query("".$query."");
|
||
|
if (!$sqlA) {
|
||
|
echo mysqli_error($GLOBALS['connect_db']);
|
||
|
die();
|
||
|
}
|
||
|
|
||
|
echo '<br /> Število najdenih anket za brisanje: '.mysqli_num_rows($sqlA).'<hr>';
|
||
|
}
|
||
|
else{
|
||
|
echo 'Nastavi tip filtra!';
|
||
|
die();
|
||
|
}
|
||
|
|
||
|
|
||
|
// Loop cez neustrezne ankete in potencialno brisanje
|
||
|
while ($rowA = mysqli_fetch_array($sqlA)) {
|
||
|
|
||
|
/*$s = sisplet_query("START TRANSACTION");
|
||
|
if (!$s) { echo mysqli_error($GLOBALS['connect_db']); die(); }*/
|
||
|
|
||
|
$anketa = $rowA['anketa_id'];
|
||
|
$db_table = ($rowA['db_table'] == 1) ? '_active' : '';
|
||
|
|
||
|
echo '<br />'.$anketa;
|
||
|
|
||
|
// Ce anekte brisemo iz baze
|
||
|
if($delete == '1' && $anketa != '' && $anketa != '0' && $anketa != '-1' && $anketa > 1){
|
||
|
|
||
|
// Pobrisemo anketo
|
||
|
paradata_deleteSurvey($anketa, $db_table);
|
||
|
|
||
|
//$s = sisplet_query("ROLLBACK");
|
||
|
/*$s = sisplet_query("COMMIT");
|
||
|
if (!$s) { echo mysqli_error($GLOBALS['connect_db']); die(); }*/
|
||
|
|
||
|
echo ' - POBRISANO<br />';
|
||
|
|
||
|
flush(); @ob_flush();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
// Zgradimo query za filtriranje anket
|
||
|
function paradata_buildClearQuery($type, $limit){
|
||
|
|
||
|
$query = "";
|
||
|
|
||
|
// pobrisemo ankete in vse podatke, ki imajo prevec vprasanj
|
||
|
if($type == 'qmax'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table, g.id as grupa_id, s.id as spremenljivka_id
|
||
|
FROM srv_anketa a, srv_grupa g, srv_spremenljivka s
|
||
|
WHERE a.id>0 AND g.ank_id=a.id AND s.gru_id=g.id AND a.id>0 AND s.id>0 AND g.id>0
|
||
|
GROUP BY anketa_id
|
||
|
HAVING count(spremenljivka_id) > 500";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke, ki imajo manj kot 5 vprasanj
|
||
|
elseif($type == 'qmin'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table, g.id as grupa_id, s.id as spremenljivka_id
|
||
|
FROM srv_anketa a, srv_grupa g, srv_spremenljivka s
|
||
|
WHERE a.id>0 AND g.ank_id=a.id AND s.gru_id=g.id AND a.id>0 AND s.id>0 AND g.id>0
|
||
|
GROUP BY anketa_id
|
||
|
HAVING count(spremenljivka_id) < 5";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke, ki nimajo nobenega vprasanja
|
||
|
elseif($type == 'qnone'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table
|
||
|
FROM srv_anketa a
|
||
|
WHERE a.id>0 AND
|
||
|
NOT EXISTS (SELECT * FROM srv_spremenljivka s, srv_grupa g WHERE g.ank_id=a.id AND s.gru_id=g.id)";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke, ki imajo premalo odgovorov
|
||
|
elseif($type == 'amin'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table, u.id as user_id
|
||
|
FROM srv_anketa a, srv_user u
|
||
|
WHERE a.id>0 AND u.ank_id=a.id
|
||
|
GROUP BY anketa_id
|
||
|
HAVING COUNT(user_id) < 20";
|
||
|
/*$query .= "SELECT a.id as anketa_id, a.db_table as db_table, u.id as user_id
|
||
|
FROM srv_anketa a, srv_user u
|
||
|
WHERE a.id>0 AND u.ank_id=a.id AND u.last_status=6 AND u.lurker=0 AND u.testdata=0
|
||
|
GROUP BY anketa_id
|
||
|
HAVING COUNT(user_id) < 20";*/
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke, ki nimajo nobenega odgovora
|
||
|
elseif($type == 'anone'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table FROM srv_anketa a
|
||
|
WHERE a.id>0 AND
|
||
|
((NOT EXISTS(SELECT * FROM srv_user u WHERE u.ank_id=a.id))
|
||
|
OR
|
||
|
(NOT EXISTS(SELECT * FROM srv_user u WHERE u.ank_id=a.id AND (u.last_status=6 OR u.last_status=5) AND u.lurker=0 AND testdata=0)))";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke starejse od 1.1.2017
|
||
|
elseif($type == 'old'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table FROM srv_anketa a
|
||
|
WHERE YEAR(a.insert_time)<'2017'";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke z neustrezno besedo v naslovu (test**, trial, poskus)
|
||
|
elseif($type == 'title'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table FROM srv_anketa a
|
||
|
WHERE a.id>0 AND ((a.naslov LIKE '%test%' OR a.naslov LIKE '%trial%' OR a.naslov LIKE '%poskus%' OR a.naslov LIKE '%kopija%' OR a.naslov LIKE '%copy%')
|
||
|
OR (a.akronim LIKE '%test%' OR a.akronim LIKE '%trial%' OR a.akronim LIKE '%poskus%' OR a.akronim LIKE '%kopija%' OR a.akronim LIKE '%copy%')
|
||
|
OR (a.intro_opomba LIKE '%test%' OR a.intro_opomba LIKE '%trial%' OR a.intro_opomba LIKE '%poskus%' OR a.intro_opomba LIKE '%kopija%' OR a.intro_opomba LIKE '%copy%'))";
|
||
|
}
|
||
|
// pobrisemo ankete in vse podatke za ankete ki vsebujejo vprasanja tipa SN imena, Vsota, Sestavljena tabela, Kvota, Lokacija, Heatmap
|
||
|
elseif($type == 'qtype'){
|
||
|
$query .= "SELECT a.id as anketa_id, a.db_table as db_table, g.id as grupa_id, s.id as spremenljivka_id
|
||
|
FROM srv_anketa a, srv_grupa g, srv_spremenljivka s
|
||
|
WHERE a.id>0 AND g.ank_id=a.id AND s.gru_id=g.id AND a.id>0 AND s.id>0 AND g.id>0
|
||
|
AND s.tip IN ('9','18','24','25','26','27')
|
||
|
GROUP BY anketa_id";
|
||
|
}
|
||
|
|
||
|
$query .= " LIMIT ".$limit;
|
||
|
|
||
|
return $query;
|
||
|
}
|
||
|
|
||
|
// Pobrisemo anketo iz baze
|
||
|
function paradata_deleteSurvey($anketa, $db_table){
|
||
|
|
||
|
$sql = sisplet_query("SELECT * FROM srv_grupa WHERE ank_id = '$anketa'");
|
||
|
while ($row = mysqli_fetch_array($sql)) {
|
||
|
|
||
|
if($row['id'] > 1 && $row['id'] != '' && $row['id'] != '0' && $row['id'] != '-1'){
|
||
|
$sql1 = sisplet_query("SELECT * FROM srv_spremenljivka WHERE gru_id='$row[id]'");
|
||
|
while ($row1 = mysqli_fetch_array($sql1)) {
|
||
|
|
||
|
if($row1['id'] > 1 && $row1['id'] != '' && $row1['id'] != '0' && $row1['id'] != '-1'){
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_vrednost WHERE spr_id = '$row1[id]'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_grid WHERE spr_id = '$row1[id]'");
|
||
|
|
||
|
// Pobrisemo podatke
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_data_checkgrid".$db_table." WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_glasovanje WHERE spr_id = '$row1[id]'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_data_grid".$db_table." WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_imena WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_number WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_rating WHERE spr_id = '$row1[id]'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_data_text".$db_table." WHERE spr_id = '$row1[id]'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_data_textgrid".$db_table." WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_upload WHERE ank_id = '$anketa'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_data_vrednost".$db_table." WHERE spr_id = '$row1[id]'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_data_vrednost_cond WHERE spr_id = '$row1[id]'");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_spremenljivka WHERE gru_id = '$row[id]'");
|
||
|
|
||
|
# tabela srv_user_grupa
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_user_grupa".$db_table." WHERE gru_id = '$row[id]'");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_grupa WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_alert WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_dostop WHERE ank_id = '$anketa'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_user WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_anketa WHERE backup = '$anketa'");
|
||
|
$sql2 = sisplet_query("DELETE FROM srv_anketa WHERE id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_tracking WHERE id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_library_anketa WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_survey_misc WHERE sid = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_variable_profiles WHERE sid = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_glasovanje WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_survey_misc WHERE sid = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_userbase_setting WHERE ank_id = '$anketa'");
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_user_setting_for_survey WHERE sid = '$anketa'");
|
||
|
|
||
|
#Pobrisemo srv_condition_vre
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_condition_vre WHERE cond_id IN (SELECT id FROM srv_condition WHERE if_id IN (SELECT element_if FROM srv_branching WHERE ank_id = '$anketa' AND element_if > 0))");
|
||
|
#Pobrisemo srv_condition_grid
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_condition_grid WHERE cond_id IN (SELECT id FROM srv_condition WHERE if_id IN (SELECT element_if FROM srv_branching WHERE ank_id = '$anketa' AND element_if > 0));");
|
||
|
#Pobrisemo srv_calculation
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_calculation WHERE cnd_id IN (SELECT id FROM srv_condition WHERE if_id IN (SELECT element_if FROM srv_branching WHERE ank_id = '$anketa' AND element_if > 0));");
|
||
|
#pobrisemo srv_condition
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_condition WHERE if_id IN (SELECT element_if FROM srv_branching WHERE ank_id = '$anketa' AND element_if > 0);");
|
||
|
#pobrisemo srv_if
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_if WHERE id IN (SELECT element_if FROM srv_branching WHERE ank_id = '$anketa' AND element_if > 0);");
|
||
|
# sedaj lahko pobrisemo tudi branching
|
||
|
//$sql2 = sisplet_query("DELETE FROM srv_branching WHERE ank_id = '$anketa'");
|
||
|
}
|
||
|
|
||
|
?>
|