老大请教一个问题,客户要搞一个导入数据的功能如何搞呀

#1 xpp1000

客户要搞一个文本框导入数据到数据库的功能,这个文本如何搞读取格式,还有SP可以对文本进行操作吗,请问一个有很多内容的文本如何进行修改和添加。

2011-12-06 09:42:17

#2 jake

sp支持的文本操作非常多。 http://cn.php.net/manual/zh/ref.strings.php

文本框导入数据,建议是用分隔符加换行,作为字段和记录的区分。比如说
===========
a|b|c
d|e|f
===========
用explore函数可以拆分字符串成数组
$a = explode("\n", $字符串);
dump($a);

2011-12-06 12:43:38

#3 xpp1000

可以搞一个例子吗

2011-12-06 21:32:21

#4 jake


// 假设现在在一个action里面
$obj = spClass('mytable'); // 这是一个表,里面字段有A,B,C
$str = $this->spArgs('wenben'); // 提交上来的输入框
$rows = explode("\n", $str); // 一行等于一条记录
foreach($rows as $one){
$cols = explode("|", $one); // 每行里面以竖线为字段分割
$obj->create(array(
'A'=>$cols[0],
'B'=>$cols[1],
'C'=>$cols[2],
)); // 新建一行数据
}
就行了。
提交的数据大概是
a|b|c
d|e|f
添加的就这样了,修改的自己结合上面的链接里面的函数想吧,都是中文的。

2011-12-06 21:59:44

#5 xpp1000

不是吧老大,$str = $this->spArgs('wenben');这一句可以读取文本吗

2011-12-07 21:04:01

#6 jake

获取“文本框”的内容,文本框,textarea
http://www.w3school.com.cn/tags/tag_textarea.asp

2011-12-07 21:46:09

#7 xpp1000

我自己想出来,还是贴一下原码,程序员的分享精神很重要的。
文本内容:
a,b,c,d,e,f,g,h***
1,dssd,sdfdsf,sdfdssd,2,f,dd***
232,2121,1212,212,21212,21212,2121
模板文件test.html

  
   
      
      
   
  

2011-12-07 23:36:43

#8 xpp1000

数据表:借jake的用一下了
这是一个表mytable,里面字段有A,B,C
程序部分:ob_start();
header("Content-type: text/html; charset=utf-8");
ob_end_flush();

class test extends spController
{
        function index()
        {
        $this->display("test.html");
        }

function save()
{$obj = spClass('mytable');

$files=$_FILES["wenben"]["tmp_name"];
$str=file_get_contents($files);

$rows = explode("***", $str); // 一行等于一条记录


        $cols=array();
foreach($rows as $one){
       
$cols = explode(",", $one); // 每行里面以逗号为字段分割

$ase=array('a'=>$cols[0],'b'=>$cols[1],'c'=>$cols[2]);

$obj->create($ase);
}

        $this->success('导入信息成功', spUrl('test', 'index'));
       
        }

}
?>

2011-12-07 23:39:31

#9 xpp1000

数据表:借jake的用一下了
这是一个表mytable,里面字段有A,B,C
程序部分:ob_start();
header("Content-type: text/html; charset=utf-8");
ob_end_flush();

class test extends spController
{
        function index()
        {
        $this->display("test.html");
        }

function save()
{$obj = spClass('mytable');

$files=$_FILES["wenben"]["tmp_name"];
$str=file_get_contents($files);

$rows = explode("***", $str); // 一行等于一条记录


        $cols=array();
foreach($rows as $one){
       
$cols = explode(",", $one); // 每行里面以逗号为字段分割

$ase=array('a'=>$cols[0],'b'=>$cols[1],'c'=>$cols[2]);

$obj->create($ase);
}

        $this->success('导入信息成功', spUrl('test', 'index'));
       
        }

}
?>

2011-12-07 23:39:38