PHP中怎样将复选框的值插入数据库并获取

我用表单获取了复选框的值并把它插入到数据库的user表中,代码如下:<html><body><?phpif($_POST[submit]){include("conn.p... 我用表单获取了复选框的值并把它插入到数据库的user表中,代码如下:
<html>
<body>
<?php
if($_POST[submit])
{
include("conn.php");
$sport=$_POST['sport'];
$sql=mysql_query("insert into user (sport) values ('$sport')");
mysql_close($conn);
}
?>
<h3>请选择你喜爱的运动:</h3>
<form name="fav" method="post" action="">
<input type="checkbox" name="sport" value="长跑"/>长跑 
<input type="checkbox" name="sport" value="骑单车"/>骑单车 
<input type="checkbox" name="sport" value="篮球"/>篮球 
<input type="checkbox" name="sport" value="羽毛球"/>羽毛球 
<input type="checkbox" name="sport" value="其它"/>其它 
<input type="submit" name="submit" value="提交" />
</form>
</body>
</html>
插入后后使用以下代码查询,得到Array:
<?php
include("conn.php");
$sql=mysql_query("select * from user");
while($row=mysql_fetch_array($sql))
{
echo $row[sport];//这段代码输出Array
}
mysql_close(&conn);
?>
我看到输出的是Array,我就用尽了操作数组的方法都得不出其中的值(当然我只是个新手了,可能操作数组的方法还没有完全掌握)。
我的目的是获取用户所提交的运动爱好,并且能在用户管理界面显示。但是我一直卡在这里,始终取不到提交的数据,到底要怎么办啊?
希望高人指点一二,感激不尽!
这个地址的文章完美的解决了我的问题
http://hi.baidu.com/leiqing97/blog/item/18878b0f1291c9e1ab6457fa.html#0
不过也同样感谢你们热心的帮助,谢谢!
展开
 我来答
ljqling
2012-01-06 · TA获得超过797个赞
知道小有建树答主
回答量:391
采纳率:0%
帮助的人:425万
展开全部
while($row=mysql_fetch_array($sql))
{
//echo $row[sport];//这段代码输出Array
print_r($row["sport"]);
}
看看输出的是什么,是一个array();
还是array(key=>value);
如果有值就成功了,为空就是存取的时候有问题!
更多追问追答
追问
页面既没有任何输出,又没有任何错误提示。这么说是插入的时候出错了,是不是啊?
追答
你的name有问题,多选的话name="aport[]";改下应该会有值了
范小小艺
2012-01-06
知道答主
回答量:18
采纳率:0%
帮助的人:3.6万
展开全部
提交checkbox本身就是一个array
你必须在读取阵列的时候,给他一个回圈来读取他,读完了,列一个变数存取用户所提选的资料
,读取到资料之后在进行写入数据库的动作。
你应该是先读到checkbox的资料,在写入数据库吧。
或者是把该使用者所勾选的资料全部写入另一个table,在把user的table和这个table做关连也行。
看你怎麼设计的,总之要先提取到checkbox的资料,才能写入数据库,
$sql=mysql_query("insert into user (sport) values ('$sport')");
values('$sport')是array,写不进去数据库的
追问
是这样啊,我想我查询得到Array但始终取不到值也是这个原因吧。像你说的读取列阵的时候给个来回圈地,是做个循环插入吗?我不懂啊,能不能教教我啊?插入另一个数据表关联是可以,不过无法确定用户选取信息的数目,做个判断后还可以,但是取值又很麻烦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
糖糖寳寳
2015-09-15 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3892万
展开全部
1、php部分如下:
<?php
//print_r($_POST);
foreach($_POST['chk'] as $val) {
mysql_query("insert into xxx (uname) values('{$val}')");
}
?>
2、HTML部分如下:
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<input type="checkbox" name="chk[]" value="11" />
<input type="checkbox" name="chk[]" value="22" />
<input type="checkbox" name="chk[]" value="33" />
<input type="checkbox" name="chk[]" value="44" />
<input type="radio" name="ds" value="55" checked="checked" />
<input type="radio" name="ds" value="66" />
<input type="submit" />
</form>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yylongren
2012-01-06 · TA获得超过283个赞
知道小有建树答主
回答量:366
采纳率:75%
帮助的人:67.9万
展开全部
首先你的复选框的名字最好定义为sport[] 这样的话你才能获取的数值,然后获取之后要看你想存储到数据库什么格式,是1,2,3还是以循环插入
更多追问追答
追问
我改成了sport[],问题还是得不到解决。
追答
你现在的问题是接收数据后输不出数据 是吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式