老大请教一个问题,客户要搞一个导入数据的功能如何搞呀
发布于:2022-01-17 09:50:54
#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