php导入execel[xls]数据表到mysql

<style type="text/css">
<!--
@import url("../style/admin.css");
.STYLE1 {
 color: #FF0000;
 font-weight: bold;
}
.STYLE2 {color: #0033FF}
-->
</style>
<script>
 function import_check(){
  var f_content = form1.file.value;
  var fileext=f_content.substring(f_content.lastIndexOf("."),f_content.length)
    fileext=fileext.toLowerCase()
   if (fileext!='.xls')
    {
     alert("对不起,导入数据格式必须是xls格式文件哦,请您调整格式后重新上传,谢谢 !");     
     return false;
    }
 }
</script>

  <table width="98%" border="0" align="center" style="margin-top:20px; border:1px solid #9abcde;">
  <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
 
    <tr >
      <td height="28" colspan="2" background="../skins/top_bg.gif"><label> &nbsp;<strong><a href="#">红利卡积分会员数据导入</a></strong></label></td>
    </tr>
    <tr>
      <td width="18%" height="50">&nbsp;选择你要导入的数据表</td>
      <td width="82%"><label>
      <input name="file" type="file" id="file" size="50" />
      </label>
        <label>
        <input name="button" type="submit" class="nnt_submit" id="button" value="导入数据"  onclick="import_check();"/>
        </label>
&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" bgcolor="#DDF0FF"> &nbsp;[<span class="STYLE1">注</span>]数据导入格式说明:</td>
    </tr>
    <tr>
      <td colspan="2">  1、其它.导入数据表文件必须是<strong>execel</strong>文件格式{.<span class="STYLE2">xls</span>}为扩展名.</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;&nbsp;2、execel文件导入数据顺序必须如:会员名称  | 会员卡号  | 身份证  | 积份  | 注册时间  | 过期日期  | 联系电话号码 如下图:</td>
    </tr>
    <tr>
      <td colspan="2">&nbsp;<img src="pic/1.jpg" width="758" height="248" /></td>
    </tr></form>
  </table>

<?php
error_reporting(E_ALL ^ E_NOTICE);
if($_POST){
 $Import_TmpFile = $_FILES['file']['tmp_name'];
 require_once '../../inc/connect.php';
 require_once 'Excel/reader.php';
 $data = new Spreadsheet_Excel_Reader();
 $data->setOutputEncoding('GB2312');
 $data->read($Import_TmpFile);
 $array =array();
 
 for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
  for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
   $array[$i][$j] = $data->sheets[0]['cells'][$i][$j];
  }
 }
 sava_data($array);

}
 function sava_data($array){ 
  $count =0; 
  $total =0;
  foreach( $array as $tmp){ 
     $Isql = "Select inte_card from gx_integral where inte_card='".$tmp[2]."'";
     $sql = "Insert into gx_integral(inte_name,inte_card,inte_status,inte_integral,inte_date,inte_date2,inte_tel) value(";
     $sql.="'".$tmp[1]."','".$tmp[2]."','".$tmp[3]."','".$tmp[4]."','".TtoD($tmp[5])."','".TtoD($tmp[6])."','".$tmp[7]."')";
    if(! mysql_num_rows(mysql_query($Isql) )){
     if( mysql_query($sql) ){
      $count++;
     }
    }
    $total++;
  }
  echo "<script>alert('共有".$total."条数据,导入".$count."条数据成功');</script>";
  
 }
 
 function TtoD($text){
  $jd1900 = GregorianToJD(1, 1, 1900)-2;
  $myJd = $text+$jd1900;
  $myDate = JDToGregorian($myJd);
  $myDate = explode('/',$myDate);
  $myDateStr = str_pad($myDate[2],4,'0', STR_PAD_LEFT)."-".str_pad($myDate[0],2,'0', STR_PAD_LEFT)."-".str_pad($myDate[1],2,'0', STR_PAD_LEFT);
  return $myDateStr;   
  }
?>

这里是用到Spreadsheet_Excel_Reader组件了,那read.php文件我就不附上了,自己下一个吧,好了最后申明本站原创转载请注明:  www.111cn.net
 

时间: 2024-09-01 20:01:08

php导入execel[xls]数据表到mysql的相关文章

mybatis数据表(mysql)的主键非自增长,如何插入数据(需插入主键)实现主键自增长?

问题描述 mybatis数据表(mysql)的主键非自增长,如何插入数据(需插入主键)实现主键自增长? 举例来说就是有表person,person有id(mysql数据库,主键,非自增),和name,pswd三个字段.如果是自增的情况,我们通常是这样处理 insert into person(name,pswd) values(#{name},#{pswd}) 这种情况不许要插入主键,因为person表主键是自增长的.但如果主键不是增长的情况呢?如何处理.主键不是自增长就应该必须插入主键. 在步

如何修复超过1G的MYSQL 数据表 数据表在MYSQL中显示状态是“使用中”.

问题描述 如何修复超过1G的MYSQL 数据表 数据表在MYSQL中显示状态是"使用中". 如何修复超过1G的MYSQL 数据表 数据表在MYSQL中显示状态是"使用中",但是无法查看数据表中的数据,用REPAIR无法修复数据表 解决方案 先停止mysql服务,然后再尝试修复看看.

使用perl实现拆分数据表(mysql)并迁移数据实例_perl

随着业务量的增长,可能需要对表进行拆分来提高性能. 下面这个例子是将www.jb51.net的users表拆分成10个表ttlsa_user_0-ttlsa_user_9. 拆分迁移数据程序如下所示: 1.创建ttlsa_user_0-ttlsa_user_9表 复制代码 代码如下: #!/usr/bin/perl ################################### ### author: www.jb51.net ### ### QQ群:232608061  ### ###

mysql不同数据库不同数据表导入数据_Mysql

背景 现在我有这么一个需求: 数据库A的user表需要导入到数据库B的account表 user表字段:uid,username,email,password,regdate,salt account表字段:id,name,email,password,type,salt 导入的字段只有username,email,password,salt,并且regdate需要符合某个条件 下面分几种情况来写sql,主要区分insert into和replace into 情况 导入的数据在B库的表中完全不

MYSQL教程:检查数据表和修复数据表

数据库在运行中,会因为人为因素或一些不可抗力因素造成数据损坏.所以为了保护数据的安全和最小停机时间,我们需制定详细的备份/恢复计划,并定期对计划的有效性进行测试. 本章结合MySQL服务器的运行机制和所提供的工具,介绍如何进行数据库的备份.维护和修复. 以下是几点防范的措施: 制定一份数据库备份/恢复计划,并对计划进行仔细测试. 启动数据库服务器的二进制变更日志,该功能的系统开销很小(约为1%),我们没有理由不这样做. 定期检查数据表,防范于未燃. 定期对备份文件进行备份,以防备份文件失效. 把

MySQL创建和删除数据表的命令及语法详解_Mysql

创建数据表创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name column_type); 以下例子中我们将在 TUTORIALS 数据库中创建数据表tutorials_tbl: tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NU

mysql中数据库与数据表编码格式的查看、创建及修改_Mysql

一.查看数据库编码格式 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 mysql> show create table <表名>; 三.创建数据库时指定数据库的字符集 mysql>create database <数据库名> character set utf8; 四.创建数据表时指定数据表的编码格式 create table tb_books ( name varchar(45

MySQL清空数据表的方法实例与分析_Mysql

MySQL数据库中,如果我们想清空数据表(删除数据表中所有内容)的话,可以通过下面两个语句来实现: truncate table table_n; delete from table_n; 实例 我们先通过实例看下通过这两种方式清空数据库的过程和结果 #delete演示 mysql> create table testforde( -> number int not null auto_increment, -> name varchar(20) not null, -> prim

Mysql数据表一直显示使用中的修复方法

打开phpmyadmin选择数据库查看,果然有3个表显示为"使用中".勾选之后进行"修复表",出现错误提示不能被修复. 于是接着从"分析表"."优化表"开始,均告失败.失败信息第一条:can't create new temp file 1.表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. 3. mysqld 进程在写表时被杀掉