PHP中在数据库中保存Checkbox数据_第1页
PHP中在数据库中保存Checkbox数据_第2页
PHP中在数据库中保存Checkbox数据_第3页
PHP中在数据库中保存Checkbox数据_第4页
PHP中在数据库中保存Checkbox数据_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——PHP中在数据库中保存Checkbox数据PHP中在数据库中保存Checkbox数据

checkbox是一个分外有用的页面表单项,在让用户举行多重选择的处境下,它甚至可以允许用户选择全部工程或是一个都不选。但是,尽管这是一个分外优秀的表单元素,但在我们的工作中,在如何正确地保存选择项这方面总存在一些易混淆的处境发生。本文将描述在遵循好的数据库设计原那么的方法下,如何把checkbox选择项正确地保存在数据库中。

要求

本文将阐述如何把选择项正确地保存在用户数据库中的方法。尽管这里包括了有用的PHP代码,但我将从数据库设计的观点来表达它们,所以,你可以很便当地使用任何一个数据库和服务器端脚本语言来实现。我只是想供给一个如何做的方法,让你能应用于你自己的站点中。假设你想运行这里的源码,你需要安装php、mysql和网络服务器。

例1:雇用站点

假使你被要求做一个雇用类的网站,允许求职的软件开发人员填写他们的技能,让雇主能访问这个站点并根据求职者的技能找到适合的员工。你也知道,一个开发人员拥有的技能会多于一个,因此你抉择这样设计你的站点。

每一个求职者将允许访问本站,注册一个用户,并且输入他的技能,Checkbox就派上用场了,你可能想作这样的一页:

__PHP__MySQL__Zope

__Perl__Javascript__JSP

[提交]

每一个求职都可以选择他所拥有的技能。鲜明对于不同人来说这选择项是不同的。一个人可能会是PHP和Mysql,其它人可能只是JSP。你将如何保存这些选择呢?一个很自然的想法是针对每个选项建一个字段,这样开头可以正常工作。但是随后你可能会察觉,当你想扩展或调整时,麻烦就来了,你可能不得不修改你的表布局。

好的方法应是这样的:

你应有一个用户表包含用户的注册信息,如用户名、密码和其它一些你需要的什么内容。假使你直接使用本文后面给出的源码,你要建一个简朴的表如下:

idusername

1User1

2User2

3User3

我们先建一个表const_skills用如下的SQL语句:

SQLCREATETABLEconst_skills

idintnotnullprimarykey,

valuevarchar20;

现在我们参与技能:

SQLINSERTINTOconst_skillsid,valueVALUES1,PHP;

SQLINSERTINTOconst_skillsid,valueVALUES2,MySQL;

SQLINSERTINTOconst_skillsid,valueVALUES3,Zope;

SQLINSERTINTOconst_skillsid,valueVALUES4,Perl;

SQLINSERTINTOconst_skillsid,valueVALUES5,Javascript;

SQLINSERTINTOconst_skillsid,valueVALUES6,JSP;

你的.const_skills现在应是这样的:

idvalue

1PHP

2MySQL

3Zope

4Perl

5Javascript

6JSP

这个表只是让用户可以选择相应的技能,现在,再建一个表lookup_skills用如下的SQL:

SQLCREATETABLElookup_skills

idintnotnullauto_incrementprimarykey,

uidint,

skill_idint;

这个表lookup_skills的目的是供给从用户表到开发技能表之间的一个映射关系。换句话说,它让我们保存开发者和他们有的技能,如,当求职者完成选择点击提交时,我们将填写这个表用checkbox中被选定的那些值。对于每一个选上的技能,我们在这个表中加一条记录,记录用户id及所选项的id。(想必大家都领会了吧。我译到这,嘿嘿)

在我们看这个插入记录的代码之前,我们先设计一下这个页面,应有的内容有一个表单,我们可以查询的数据库并且取checkbox标签从const_skills表中,建这个checkbox表单项。

代码如下:

?php

/*insertcodetoconnecttoyourdatabasehere*/

/*getthecheckboxlabels*/

$skills=get_checkbox_labelsconst_skills;

/*createthehtmlcodeforaformattedsetof

checkboxes*/

$html_skills=make_checkbox_html$skills,3,400,skills[];

?

html

PHP中在数据库中保存Checkbox数据

body

br

formname=skillsmethod=POSTaction=insertskills.php

Checkoffyourwebdevelopmentskills:

?echo$html_skills;?

br

inputtype=submitvalue=Submit

/form

/body

/html

?php

functionget_checkbox_labels$table_name

/*makeanarray*/

$arr=array;

/*constructthequery*/

$query=SELECT*FROM$table_name;

/*executethequery*/

$qid=mysql_query$query;

/*eachrowintheresultsetwillbepackagedas

anobjectandputinanarray*/

while$row=mysql_fetch_object$qid

array_push$arr,$row;

return$arr;

/*Printsanicelyformattedtableofcheckboxchoices.

$arrisanarrayofobjectsthatcontainthechoices

$numisthenumberofelementswidewedisplayinthetable

$widthisthevalueofthewidthparametertothetabletag

$nameisthenameofthecheckboxarray

$checkedisanarrayofelementnamesthatshouldbechecked

*/

functionmake_checkbox_html$arr,$num,$width,$name,$checked

/*createstringtoholdouthtml*/

$str=;

/*makeit*/

$str.=tablewidth=$widthborder=0n;

$str.=trn;

/*determineifwewillhavetocloseadd

aclosingtrtagattheendofourtable*/

ifcount$arr%$num!=0

$closingTR=true;

$i=1;

ifisset$checked

PHP中在数据库中保存Checkbox数据

/*ifwepassedinanarrayofthecheckboxeswewant

tobedisplayedaschecked*/

foreach$arras$ele

$str.=tdinputtype=checkboxname=$namevalue=$ele-id;

foreach$checkedas$entry

if$entry==$ele-value

$str.=checked;

continue;

$str.=;

$str.=$ele-value;

if$i%$num==0

$str.=/trntr;

else

$str.=/tdn;

$i++;

else

/*wejustwanttoprintthecheckboxes.nonewillhavechecks*/

foreach$arras$ele

$str.=tdinputtype=checkboxname=$namevalue=$ele-id;

$str.=$ele-value;

if$i%$num==0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论