ID. "' AND `SelectID`='". $recode->ID. "'"); if (!mysql_num_rows($rss)) { mysql_query("REPLACE `selects` SET `ID`='". microid(62). "', `TargetID`='". $recode->ID. "', `SelectID`='". $recode->ID. "', `Relation`='0' "); } } /***************************************************************/ $sql = "SELECT selects.ID, $client.Name, sub.Name as 'targetName', CASE WHEN `selects`.Relation=1 THEN '上司' WHEN `selects`.Relation=2 THEN '同僚' WHEN `selects`.Relation=3 THEN '部下' ELSE '本人' END as 'Rel', sub.Office, sub.Depart, sub.Class, sub.Post FROM `selects` LEFT JOIN `$client` ON selects.SelectID=$client.ID LEFT JOIN `$client` `sub` ON selects.TargetID=sub.ID WHERE $client.Email='' ORDER BY selects.SelectID,selects.Relation"; $rs = mysql_query($sql); $fname = $client."-Paper-". date("Ymd"). ".csv"; header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=". $fname); if ($fp = fopen('php://output', 'w')) { /* 1行目 */ $csv = array('','','','','','','',''); foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Group']; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 2行目 */ $csv = array('','','','','','','',''); foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Field']; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 3行目 */ $csv = array(''); for($i = 1; $i <= 7; $i++) { $csv[] = sprintf("F%d", $i); } $i = 1; foreach ($Que as $line) { $csv[] = sprintf("Q%02d", $i); $i++; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 4行目 */ $csv = array("PaperCD","回答者名","被評価者","関係",$Field[0],$Field[1],$Field[2],"役職"); $i = 1; $g = 0; foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Que']; $i++; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); while ($csv = mysql_fetch_row($rs)) { mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); } fclose($fp); } exit; } elseif ($_REQUEST['action'] == "csv") { $fname = $client."-". date("Ymd"). ".csv"; $files = array(); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=". $fname); if ($fp = fopen('php://output', 'w')) { /* 1行目 */ $csv = array('','','','','','','',''); foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Group']; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 2行目 */ $csv = array('','','','','','','',''); foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Field']; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 3行目 */ $csv = array(''); for($i = 1; $i <= 7; $i++) { $csv[] = sprintf("F%d", $i); } $i = 1; foreach ($Que as $line) { $csv[] = sprintf("Q%02d", $i); $i++; } mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); /* 4行目 */ $csv = array("回答日時"); if ($Init['ansID'] == 1) { $csv[] = "回答者ID"; } elseif ($Init['ansID'] == 2) { $csv[] = "回答者名"; } array_push($csv, "被評価者","関係",$Field[0],$Field[1],$Field[2],"役職"); $i = 1; $g = 0; foreach ($Que as $line) { $field = dbfields($line); $csv[] = $field['Que']; $i++; } $fieldsample = join("\t", $csv); mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); $rs = mysql_query("SELECT * FROM `$client-ans` GROUP BY `TargetID`"); $fcode = ""; $i = 1; while ($target = mysql_fetch_object($rs)) { if ($fcode != $target->TargetID) { if ($Init['result_zip'] && $i > 1) { $txtfile = $_SERVER['DOCUMENT_ROOT']. "/360/$client/tmp/$fcode.txt"; data_save($txtfile, $lines); $files[] = $txtfile; } $fcode = $target->TargetID; unset($lines); $lines = array(); $lines[] = $fieldsample; } $sql = "SELECT `$client-ans`.Uid, `$client-ans`.TargetID, `$client-ans`.Date, $client.Name, $client.Office, $client.Depart, $client.Class, $client.Post, client.Name as 'Ansname', CASE WHEN `$client-select`.Relation=1 THEN '上司' WHEN `$client-select`.Relation=2 THEN '同僚' WHEN `$client-select`.Relation=3 THEN '部下' ELSE '本人' END as 'Rel' FROM `$client-ans` LEFT JOIN `$client` ON `$client-ans`.TargetID=$client.ID LEFT JOIN `$client` client ON `$client-ans`.Uid=client.ID LEFT JOIN `$client-select` ON `$client-ans`.TargetID=`$client-select`.TargetID AND `$client-ans`.Uid=`$client-select`.SelectID WHERE `$client-ans`.`TargetID`='". $target->TargetID. "' GROUP BY `Uid` ORDER BY `$client-select`.Relation"; $rss = mysql_query($sql); while ($recode = mysql_fetch_object($rss)) { $csv = array($recode->Date); if ($Init['ansID'] == 1) { $csv[] = $recode->Uid; } elseif ($Init['ansID'] == 2) { $csv[] = $recode->Ansname; } array_push($csv,$recode->Name,$recode->Rel,$recode->Office,$recode->Depart,$recode->Class,$recode->Post); $set = mysql_query("SELECT `Ans` FROM `$client-ans` WHERE `Uid`='". $recode->Uid. "' AND `TargetID`='". $recode->TargetID. "' ORDER BY `Que`"); while ($ans = mysql_fetch_object($set)) { $csv[] = str_replace(" ", " ", $ans->Ans); } $lines[] = join("\t", $csv); mb_convert_variables('SJIS-win', 'UTF-8', $csv); fputcsv($fp, $csv); } $i++; } fclose($fp); if ($Init['result_zip']) { $txtfile = $_SERVER['DOCUMENT_ROOT']. "/360/$client/tmp/$fcode.txt"; data_save($txtfile, $lines); $files[] = $txtfile; createZip($_SERVER['DOCUMENT_ROOT']. "/360/$client/data/results.zip", $files); $cmd = "rm ". $_SERVER['DOCUMENT_ROOT']. "/360/$client/tmp/*.txt"; system($cmd); } } exit; } function createZip($zipfile, $files = array()) { /* php-pecl-zip 必須 createZip('test.zip', array('index.php')); */ $zip = new ZipArchive(); if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) { exit("cannot open <$zipfile>\n"); } foreach ($files as $file) { $paths = split('/', $file); $i = count($paths) - 1; $filename = $paths[$i]; $zip->addFile($file, $filename); } $zip->close(); } ?>