当前位置: 首页>>代码示例>>PHP>>正文


PHP DataModel::createTable方法代码示例

本文整理汇总了PHP中DataModel::createTable方法的典型用法代码示例。如果您正苦于以下问题:PHP DataModel::createTable方法的具体用法?PHP DataModel::createTable怎么用?PHP DataModel::createTable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DataModel的用法示例。


在下文中一共展示了DataModel::createTable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: upload

 public function upload()
 {
     $attrModel = new AttributesModel();
     $configArr = (array) $attrModel->getConfig();
     if ($configArr['beginRow'] == 0) {
         Tool::alertBackNoRefresh('请先设置上传文件的数据格式:)');
         return;
     }
     $allAttr = $attrModel->getAttributes();
     $allAttrArray = array();
     foreach ($allAttr as $attr) {
         $allAttrArray[] = $attr->attributeName;
     }
     $attributes = array_values(array_slice($configArr, 4, 57));
     $attributesFlip = array_flip($attributes);
     /*print_r($attributesFlip);
       echo '<hr/>';*/
     $sheetNumArr = explode('-', $configArr['dataSheetNum']);
     foreach ($sheetNumArr as $key => &$sheetNum) {
         if (trim($sheetNum)) {
             $sheetNum = trim($sheetNum) - 1;
         } else {
             unset($sheetNumArr[$key]);
         }
     }
     if (isset($_POST['send'])) {
         $beginTime = microtime(true);
         $fileName = $_FILES['excel']['name'];
         $explodeArr = explode('.', $fileName);
         $extensionName = $explodeArr[count($explodeArr) - 1];
         $inputFileName = $_FILES['excel']['tmp_name'];
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel.php';
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel/Writer/Excel2007.php';
         require '../Extension/PHPExcel_1.8.0/Classes/PHPExcel/Writer/Excel5.php';
         $inputFileType = PHPExcel_IOFactory::identify($inputFileName);
         if ($inputFileType != 'Excel2007' && $inputFileType != 'Excel5') {
             Tool::alertBackNoRefresh('上传文件格式不正确:(');
             return;
         }
         $objReader = PHPExcel_IOFactory::createReader($inputFileType);
         $PHPExcel = $objReader->load($inputFileName);
         //根据自己的数据表的大小修改
         $arr = array('A' => 1, 'B' => 2, 'C' => 3, 'D' => 4, 'E' => 5, 'F' => 6, 'G' => 7, 'H' => 8, 'I' => 9, 'J' => 10, 'K' => 11, 'L' => 12, 'M' => 13, 'N' => 14, 'O' => 15, 'P' => 16, 'Q' => 17, 'R' => 18, 'S' => 19, 'T' => 20, 'U' => 21, 'V' => 22, 'W' => 23, 'X' => 24, 'Y' => 25, 'Z' => 26, 'AA' => 27, 'AB' => 28, 'AC' => 29, 'AD' => 30, 'AE' => 31, 'AF' => 32, 'AG' => 33, 'AH' => 34, 'AI' => 35, 'AJ' => 36, 'AK' => 37, 'AL' => 38, 'AM' => 39, 'AN' => 40, 'AO' => 41, 'AP' => 42, 'AQ' => 43, 'AR' => 44, 'AS' => '45', 'AT' => 46, 'AU' => 47, 'AV' => 48, 'AW' => 49, 'AX' => 50, 'AY' => 51, 'AZ' => 52, 'BA' => 53, 'BB' => 54, 'BC' => 55, 'BD' => 56, 'BE' => 57);
         $sexArr = array('男' => 1, '女' => 0);
         $BMIArr = array('肥胖' => 0, '超重' => 1, '低体重' => 2, '正常' => 3);
         $otherArr = array('不及格' => 0, '及格' => 1, '良好' => 2, '优秀' => 3);
         $year = $_POST['year'];
         $year = str_replace('-', '_', $year);
         $tableName = 'tice_data_' . $year;
         $model = new DataModel();
         $model->dbName = 'tice';
         $model->tableName = $tableName;
         if (!$model->tableExist()) {
             $model->createTable();
         }
         $model = new DataModel();
         foreach ($allAttrArray as $attr) {
             $model->{$attr} = 0;
         }
         $user = new UserModel();
         $totalEmptyErrorArr = array();
         $totalInsertErrorArr = array();
         //检查插入失败数据的二维数组
         $emptyErrorArr = array();
         //检查不完整的数据的二维数组
         $sqlParams = array();
         $affectedRows = 0;
         foreach ($sheetNumArr as $i) {
             $currentSheet = $PHPExcel->getSheet($i);
             //获得工作表,从0开始
             $highestRow = $currentSheet->getHighestRow();
             // 取得总行数
             $highestColumn = $currentSheet->getHighestColumn();
             //取得总列数 比如 ‘AJ'列这样子
             //                echo $currentSheet->getTitle() . ' ' . $highestRow . '<br/>'; // 得到当前工作表的名字
             //读取一个工作表的数据 每次读取一行,再在行中循环每列的数值
             for ($row = $configArr['beginRow']; $row <= $highestRow; $row++) {
                 $listRow = array();
                 for ($column = self::BEGIN_COL; $column <= $arr[$highestColumn]; $column++) {
                     $val = $currentSheet->getCellByColumnAndRow($column, $row)->getValue();
                     $listRow[] = $val;
                     $listRow['row'] = $row;
                 }
                 //                    print_r($listRow);
                 //检查数据的完整性
                 if (!self::checkDataComplete($configArr['schoolType'], $listRow, $attributesFlip)) {
                     $empty = array();
                     $empty['sheetName'] = $currentSheet->getTitle();
                     $empty['row'] = $row;
                     $emptyErrorArr[] = $empty;
                     unset($empty);
                 }
                 $model->tableName = $tableName;
                 $listRow[$attributesFlip['sex']] = $sexArr[trim($listRow[$attributesFlip['sex']])];
                 $listRow[$attributesFlip['BMIGrade']] = $BMIArr[trim($listRow[$attributesFlip['BMIGrade']])];
                 $listRow[$attributesFlip['FVCGrade']] = $otherArr[trim($listRow[$attributesFlip['FVCGrade']])];
                 $listRow[$attributesFlip['_50mGrade']] = $otherArr[trim($listRow[$attributesFlip['_50mGrade']])];
                 $listRow[$attributesFlip['SARGrade']] = $otherArr[trim($listRow[$attributesFlip['SARGrade']])];
                 $listRow[$attributesFlip['SLJGrade']] = $otherArr[trim($listRow[$attributesFlip['SLJGrade']])];
                 $listRow[$attributesFlip['ChinUpGrade']] = $otherArr[trim($listRow[$attributesFlip['ChinUpGrade']])];
//.........这里部分代码省略.........
开发者ID:denglitong,项目名称:tice,代码行数:101,代码来源:DataController.class.php


注:本文中的DataModel::createTable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。