php mysql 第一个逗号_PHP和MYSQL中的“逗号”

在网站开发中会经常用到多选框,比如说兴趣,爱好,工作地点等等内容的选择上。

如何在开发过程中将这些内容简洁优雅地保存到数据库中,并且高效的进行搜索,方便的进行修改,整个流程需要借助逗号“,”这个符号的帮忙。

逗号在整个过程中主要作用表现在以下几点:

① 将页面提交的多选框数组形式转化为字符串形式(逗号分隔),并保存到数据库中

② 搜索过程中如何对保存到数据库中的逗号分隔字符串进行搜索(多项搜索)

③如何将用户多选的内容从数据库显示到页面

针对①,我们采用PHP中常用的函数来解决:

$submitChkBoxArr = $_POST['chkboxName'];

$insertDataStr = implode($submintChkBoxArr,',');

// 数据库保存执行语句

...

PHP中explode 和 implode函数可以实现数组和字符串的互换,其中字符串的分隔符可以自己指定。

针对②,由于数据库中保存的数据格式如下图所示

user_id

hobby

001

1003,1005,1007,1009

003

1004

005

1008,1009,1010

006

1001,1006,1008,1009

如果要查找选中hobby为1005或者1008的用户的话,SQL语句如何书写是好?请用一条SQL获取结果,(表字段定义可以修改)

最笨的办法是用一堆LIKE和满页面的%,再聪明的办法可能会想到FIND_IN_SET,但是也无法用摆脱用很多OR连接的结果。这时候应该想到的是全文检索,当然首先要对hobby字段建立全文检索索引,然后利用MySQL中自带的函数来实现:

SELECT

*

FROM

TEST

WHERE

MATCH hobby AGAINST('1005,1008')

当然,逗号分隔符每个被分割的字符串长度必须大于3,否则会被忽略。可见MySQL开发者是很喜欢逗号的。 笑:-D

对于③,实现起来比较简单,从数据库中将逗号分割的字符串取出,用explode函数将字符串转化为数组,然后对于数组在页面中显示时做适当处理,当然最好在页面显示前将选中项判断赋值,然后直接在页面予以显示。

总结:

小强属于LAMP初学者,对于以上实现方法也是在自己遇到问题过程中自己先用蠢办法然后不断网上搜集资料才发现好的解决方案,对于效率问题还真没有计算过;还请大牛指点一二三,欢迎讨论交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值