$query
".$connect->ErrorMsg());
$optionElements = '';
$queryCheckColumnsActive = "SELECT * FROM {$dbprefix}survey_{$surveyid} ";
$resultActive = db_execute_num($queryCheckColumnsActive) or safe_die("Error:
$query
".$connect->ErrorMsg());
$countActive = $resultActive->FieldCount();
while ($row = $result->FetchRow())
{
$queryCheckColumnsOld = "SELECT * FROM {$row[0]} ";
$resultOld = db_execute_num($queryCheckColumnsOld) or safe_die("Error:
$query
".$connect->ErrorMsg());
if($countActive== $resultOld->FieldCount())
{
$optionElements .= "\t\t\t\n";
}
}
//Get the menubar
$importoldresponsesoutput = browsemenubar($clang->gT("Quick Statistics"));
$importoldresponsesoutput .= "
";
}
elseif (isset($surveyid) && $surveyid && isset($oldtable))
{
/*
* TODO:
* - mysql fit machen
* -- quotes für mysql beachten --> `
* - warnmeldung mehrsprachig
* - testen
*/
// if($databasetype=="postgres")
// {
$activetable = "{$dbprefix}survey_$surveyid";
//Fields we don't want to import
$dontimportfields = array(
'id' //,'otherfield'
);
// fields we can import
$importablefields = array();
if($databasetype=="postgres")
{
$query = "SELECT column_name as field FROM information_schema.columns WHERE table_name = '{$activetable}' ";
}
else
{
$query = "SHOW COLUMNS FROM {$activetable}";
}
$result = db_execute_assoc($query) or safe_die("Error:
$query
".$connect->ErrorMsg());
while ($row = $result->FetchRow())
{
if($databasetype=="postgres")
{
if (!in_array($row['field'],$dontimportfields))
{
$importablefields[] = $row['field'];
}
}
else
{
if (!in_array($row['Field'],$dontimportfields))
{
$importablefields[] = $row['Field'];
}
}
}
foreach ($importablefields as $field => $value)
{
$fields2insert[]=($databasetype=="postgres") ? "\"".$value."\"" : "`".$value."`";
// if($databasetype=="postgres") { $fields2insert[] = "\"".$value."\""; }
}
//fields we can supply //fields in the old database
$availablefields = array();
if($databasetype=="postgres")
{
$query = "SELECT column_name as field FROM information_schema.columns WHERE table_name = '{$oldtable}' ";
}
else
{
$query = "SHOW COLUMNS FROM {$oldtable}";
}
$result = db_execute_assoc($query) or safe_die("Error:
$query
".$connect->ErrorMsg());
while ($row = $result->FetchRow())
{
if($databasetype=="postgres")
{
if (!in_array($row['field'],$dontimportfields))
{
$availablefields[] = $row['field'];
}
}
else
{
if (!in_array($row['Field'],$dontimportfields))
{
$availablefields[] = $row['Field'];
}
}
}
foreach ($availablefields as $field => $value)
{
if($databasetype=="postgres")
{
$fields2import[] = "\"".$value."\"";
}
else
{
$fields2import[] = '`'.$value.'`';
}
}
$queryOldValues = "SELECT ".implode(", ",$fields2import)." "
. "FROM {$oldtable} ";
$resultOldValues = db_execute_assoc($queryOldValues) or safe_die("Error:
$queryOldValues
".$connect->ErrorMsg());
while ($row = $resultOldValues->FetchRow())
{
$values2import = array();
foreach($row as $fieldName => $fieldValue)
{
if( $fieldValue=="")
{
$values2import[] = "NULL";
}
else
{
if(!is_numeric($fieldValue))
$values2import[] = "'".db_quote($fieldValue)."'";
else
$values2import[] = "".$fieldValue."";
}
}
$insertOldValues = "INSERT INTO {$activetable} ( ".implode(", ",$fields2insert).") "
. "VALUES( ".implode(", ",$values2import)."); ";
$result = $connect->Execute($insertOldValues) or safe_die("Error:
$insertOldValues
".$connect->ErrorMsg());
}
// }
// else
// {
// // options (UI not implemented)
//
// $dontimportfields = array(
// 'id' //,'otherfield'
// );
// $presetfields = array( // quote all strings so we can allow NULL
// //'4X13X951'=>"'Y'"
// //'id' => "NULL"
// );
// $importidrange = false; //array('first'=>3,'last'=>10);
//
// $activetable = "{$dbprefix}survey_$surveyid";
//
// // fields we can import
// $importablefields = array();
// $query = "SHOW COLUMNS FROM {$activetable}";
// $result = db_execute_assoc($query) or safe_die("Error:
$query
".$connect->ErrorMsg());
// while ($row = $result->FetchRow())
// {
// if (!in_array($row['Field'],$dontimportfields))
// {
// $importablefields[] = $row['Field'];
// }
// }
//
// // fields we can supply
// $availablefields = array();
// $query = "SHOW COLUMNS FROM {$oldtable}";
// $result = db_execute_assoc($query) or safe_die("Error:
$query
".$connect->ErrorMsg());
// while ($row = $result->FetchRow())
// {
// $availablefields[] = $row['Field'];
// }
// foreach ($presetfields as $field => $value)
// {
// if (!in_array($field,$availablefields))
// {
// $availablefields[] = $field;
// }
// }
//
// $fieldstoimport = array_intersect($importablefields,$availablefields);
//
// // data sources for each field (field of oldtable or preset value)
// $sourcefields = array();
// foreach ($fieldstoimport as $field)
// {
// $sourcefields[] = array_key_exists($field,$presetfields)?
// $presetfields[$field]
// : ($oldtable.'.`'.$field.'`');
// $fieldstoimport2[] = '`'.$field.'`';
// }
//
// $query = "INSERT INTO {$activetable} (\n\t".join("\t, ",$fieldstoimport2)."\n) "
// ."SELECT\n\t".join("\t,",$sourcefields)."\n"
// ."FROM {$oldtable}";
// if (is_array($importidrange))
// {
// $query .= " WHERE {$oldtable}.id >= {$importidrange['first']} "
// ." AND {$oldtable}.id <= {$importidrange['last']}";
// }
//
// $result = $connect->Execute($query) or safe_die("Error:
$query
".$connect->ErrorMsg());
// }
header("Location: $scriptname?action=browse&sid=$surveyid");
}
?>