新客网
首页 | 新闻 | 系统·网络·服务器·安全 | 工具·办公 | 编程·数据库 | 图象·网页·运营 | 硬件·存储 | 专题教程 | 论坛·old
 → 当前位置:首页 > 教程 > 编程开发 > PHP教程 > 正文

多个字段,大量记录的插入操作技巧(PHP)

XKER.COM   2006-10-28 8:38:04  来源:不详  点击:

在使用php+mysql开发的时候,插入/删除数据是免不了的,我想大家早已习惯了诸如bbs发表,留言簿的一条,一条的数据输入的模式.
但是在很多工程里,逐条输入数据是不被允许的.
比如,输入学生的考试成绩,逐条输入需要点击"提交"40多次,这很大程度消磨了班主任的耐心和时间,如何"一口气"输入完一个班级的数据,是校园管理系统的一个要点(当然,其他场合也经常有这种要求)
下面的文章仅仅是我的工作经验,供学习PHP的同道们参考.(高手大概会一笑了之吧)
主要思路有二:1.动态生成表单和域的属性
2.用变量表示变量

首先看看数据结构:
create table score
(
score_id int unsigned primary key auto_increment,
s_no int unsigned not null,
grade tinyint not null,
class tinyint not null,
class2 tinyint ,
subject char(6) not null,
score tinyint default '0'
)type=MYISAM;

create table students
(
imitate int unsigned primary key,
s_no int unsigned ,
s_name char(10) not null,
......
)type=MYISAM;
其中s_no是学号,是整个程序的关键.由于这个学校语数外是分8个等级班的,所以,成绩表中多一个class2字段.
目的是在一个表单中输入全班40多人的"分类班,成绩"数据,一次性提交.
由于输入牵涉多个字段,而且需要插入的记录不止一条,给编程提高了难度.这里牵涉了2个字段,但是我们举一反三后可以解决任何多个字段的问题.(当然,表单是需要动态生成的.)

废话不多说了,看看源代码吧:
(因为这个站点没有把html标签给过滤掉,请大家把下面代码copy到dreamweaver的代码视图里再看.)

<html>

<?

//连接数据库

include("const.php");

include("link.php");

//如果没有表单提交,执行下面操作

if(!empty($HTTP_POST_VARS)) {

//获得POST变量

$grade = $_POST["grade"];

$tclass = $_POST["tclass"];

//由于学号最后两位不会超过60,我们一个一个接收

for($i = 1;$i < 60;$i++) {

//第一条记录的分类班和成绩的"变量名"(注意还不是数值)

$fenlei = "a".$i;

$score = "b".$i;

//因为学号可能有间隔,先判断值是否存在

if(!empty($_POST["$fenlei"]) && !empty($_POST["$score"]))
{

//如果register_globals = on,则下面直接使用$$fenlei和$$score.

//我们假设register_globals = on,如果你的设置不是,那么请再定义两个变量接收它们的值.

//重新生成完整的学号.

$s_no = $grade*10000+$class*100+$i;

//生成query语句,用到了"变量的变量".当然,如果register_globals = off,则又有不同.

$query = "insert into score (s_no,grade,class,class2,score) values ('$s_no','$grade','$tclass','".$$fenlei."','".$$score."')";

//显示,看看语句是否正确.

echo $query."<br>";

//执行语句,我没有写出来.

}

}

}

?>

<head>

<title>TEST</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body>

<form action="test.php" method="post" name="form1"
target="_self">

<table width="400" border="0" cellpadding="0"
cellspacing="0">

<tr>

<td height="20" colspan="3">年级(入学年):

<input name="grade" type="text" id="grade"
size="10" maxlength="2">

班级:

<input name="tclass" type="text" id="tclass"
size="10" maxlength="2"></td>

</tr>

<tr>

<td width="200" height="20">学号</td>

<td width="100">分类班</td>

<td width="100">成绩</td>

本新闻共2页,当前在第1页  1  2  

上一篇教程:用PHP构建一个简易监视引擎
下一篇教程:PHP中英文混合排版中处理字符串常用的函数
收藏本文】 【我要投稿】 【打印本文】 【论坛讨论】 【关闭窗口

相关文章
·电子邮局PHP应用篇——POP3邮件的收取(二)·电子邮局PHP应用篇——POP3邮件的收取(一) 
·PHP的应用——聊天室开发完全手册(三)·PHP的应用——聊天室开发完全手册(二) 
·PHP的应用——聊天室开发完全手册(一)·LINUX环境中用PHP构建网站:用递归函数写论坛
·LINUX环境中用PHP构建网站:用户的登入认证·LINUX环境中用PHP够建网站:新闻发布系统
·LINUX环境中用PHP构建网站:搜索引擎的实现·用 Oracle AS 10g 为PHP提供的一次性登录
·PHP中英文混合排版中处理字符串常用的函数·用PHP构建一个简易监视引擎
·php高手进阶:写一个用户在线显示的程序·在PHP开发过程中实现验证码一法
·在PHP中实现文件的上传功能·Linux下用PHP4连接ORACLE8I的方法

学院文章搜索
  
推荐文章
·嵌入式Linux操作系统启动信
·网页设计配色应用实例剖析
·如何安全安装Vista系统
·Photoshop巧绘制非洲菊
·简简单单用软件给MP3掐头去
·ASP初学者常用源代码总结篇
·利用异常表处理Linux内核态
·Linux命令行下如何配置nVI
·如何实现Linux与windows的
·秘籍:右键菜单终极锤炼术
阅读排行
·免费代理IP(每日更新)
·流氓网站招招看 详细剖析恶
·轻松恢复硬盘数据 EasyRec
·DOS下对系统重新进行分区
·清除猖狂的Sxs.exe病毒
·DOS常用命令
·编程过把瘾:自己动手写操
·windows下如何修改右键菜单
·DOS下常用的相关网络命令
·SQL Server安装文件挂起错
专题教程
·MySQL 专题
·数据恢复指南 专题
·Web服务器专题
·DB2 9数据库专题
·ghost教程 专题
·局域网技术专题
·虚拟机专题
·CDN加速技术专题
·注册表教程专题
·电脑技巧 专题
最新文章
·电子邮局PHP应用篇——POP
·电子邮局PHP应用篇——POP
·PHP的应用——聊天室开发完
·PHP的应用——聊天室开发完
·PHP的应用——聊天室开发完
·LINUX环境中用PHP构建网站
·LINUX环境中用PHP构建网站
·LINUX环境中用PHP够建网站
·LINUX环境中用PHP构建网站
·用 Oracle AS 10g 为PHP提
设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003 - 2006 XKER Inc. All Rights Reserved
新客网 版权所有