在PHP中,在数据库1中保存复选框数据
复选框是一个非常有用的页面表单项。甚至允许用户选择多个项目,它甚至可以让用户选择所有项目或没有。不过,虽然这是一个非常优秀的表单元素,总有我们对如何正确保存选择工作的一些混乱的状况,本文将描述如何妥善保存复选框选择数据库中的数据库设计原则下。
要求
这篇文章将解释如何选择正确的用户数据库保存的方法。虽然有有用的PHP代码,我表示他们从数据库设计的角度,所以你可以使用任何数据库和服务器端脚本语言非常方便。我只是想做它,你可以将它应用到你自己的网站提供的一种方式。如果你想在这里运行的源代码,您需要安装PHP,MySQL,和网络服务器。
示例1:招聘网站
如果你被要求做一个招聘网站,允许求职软件开发人员填写他们的技能,以便雇主可以根据他们的技能访问网站并找到合适的员工。你也知道一个开发人员的技能比一个更高,所以你决定像这样设计你的站点。
每个求职者都允许访问这个网站,注册用户,输入他的技能,复选框将开始运行。你可能想要做这样的一页。
PHP MySQL Zope __ __ __
Perl的Javascript JSP __ __ __
{投稿}
每个工作都可以选择他所拥有的技能。很明显,这个选择对不同的人来说是不同的。一个人可能是PHP和MySQL,而另一个人可能只是JSP。你将如何保存这些选择一个非常自然的想法是为每个选项建立一个字段,这样它就可以正常工作,但是你可能会发现,当你想扩展或调整时,麻烦就来了,你可能不得不修改你的表的结构。
好办法是这样做:
您应该有一个用户表,其中包含用户的注册信息,如用户名、密码和其他需要的内容:
我的用户名
1用户
2用户
3用户2
我们首先建立一个表const_skills 以下SQL语句:
SQL语句创建表(const_skills >
id不是空主键,
价值varchar(20));
现在我们加入技能:
SQL >插入const_skills(ID值)值(1,php);
SQL >插入const_skills(ID值)值(2,MySQL);
SQL >插入const_skills(ID值)值(3,Zope );
SQL >插入const_skills(ID值)值(4,Perl);
SQL >插入const_skills(ID值)值(5,Javascript);
SQL >插入const_skills(ID值)值(6,JSP);
Your const_skills should now be like this:
ID值
1 PHP
2 MySQL
Zope 3
4 Perl
5 Javascript
6 JSP
此表只允许用户选择适当的技能。现在,用下面的SQL建表lookup_skills:
SQL语句创建表(lookup_skills >
我在auto_increment主键不为空,
UID int,
skill_id int);
本表lookup_skills目的是用户表和发展技能表之间的映射关系提供的。换句话说,我们可以让开发商和他们的技能。当一个求职者完成了点击提交的选择时,我们将用复选框中选择的值填写这个表格,对于每个选定的技能,我们在这个表中添加一个记录,记录用户ID和选项ID。我把它在这里,嘿嘿…
在查看插入记录的代码之前,我们首先设计页面。内容要有一个形式,我们可以查询数据库并以复选框的标签从const_skills表建立复选框表单项。
代码如下:
插入代码连接到您的*数据库*这里
获取复选框标签
$技能= get_checkbox_labels(const_skills );
为格式化的一组创建HTML代码
* /复选框
html_skills美元(3, 400美元= make_checkbox_html技能,技能{ });
>
检查你的网络开发技能:
功能get_checkbox_labels($ table_name){
制作一个数组
ARR =阵列(美元);
构建查询
为查询=SELECT * FROM table_name美元;
执行查询
一块美元= mysql_query($查询);
结果集中的每一行将被打包为
一个物体并放进一个数组中。
而($行= mysql_fetch_object($ QID)){
array_push($ ARR,$行);
}
返回的数组;
}
打印一个格式良好的复选框复选框。
$ ARR是包含选择对象数组
$是我们在表中显示的元素的个数。
宽度是宽度参数到表标记的值。
$名称是复选框数组的名称。
检查的是一组元素名称,应该检查。
* /
功能make_checkbox_html(ARR美元,美元美元美元的数量、宽度、姓名、检查美元){
创建字符串以支持HTML / ***
= $ ;
使它成为
$n;
$n;
确定是否必须关闭
表结尾处的一个结束TR标记。
如果(计数($ ARR)% $民!= 0){
closingtr美元=真;
}
$ I = 1;
如果(isset($检查)){
如果我们在一个我们所需的复选框阵列/通过
显示为选中的。
foreach(数组元素美元美元){
美元;
foreach($检查进入美元){
如果($ = $ = value){
$;
继续;
}
}
$;
$值;
如果($ = $ = = 0){
$n;
{人}
$n;
}
美元+;
}
{人}
我们只想打印/复选框。没有人会有支票。
foreach(数组元素美元美元){
$id;
$值;
如果($ = $ = = 0){
$n;
{人}
$n;
}
美元+;
}
}
钉上闭合的TR标记*如果必要的话
如果($ closingtr = = true){
$n;
{人}
$n;
}
返回$ STR;
}
>