首页 新闻 会员 周边 捐助

多个数据读取

0
悬赏园豆:50 [已解决问题] 解决于 2018-09-18 21:25

我的数据库里面有个列里面有多个数字 user 列里面存储的是多个值 {"87":1,"174":7},我要读取“”里的值来,该怎么写 比如

if ($user= 87) {
act('over', '请重新提交', $connection);
请大神指教

码哥子的主页 码哥子 | 初学一级 | 园豆:44
提问于:2018-09-15 18:43
< >
分享
最佳答案
0

什么意思哦?你是要根据条件去匹配字段里面的值符号要求的数据吗?
如果是这样,你可以用like语句啊
如果你是想查询出来的值,把“”里面的值全部解析出来
那么你可以对取出来的数据用正则表达式取匹配啊

收获园豆:50
程序员修炼之旅 | 小虾三级 |园豆:976 | 2018-09-15 19:53

是这样,我想做到的就是:查询jzroom表里面user列几个引号里面的值*(这个值是多个数据{"87":1,"174":1,"156":1.....}),再判断自己的userID是不是在里面,如果是在里面那么就执行act('over', '请重新提交', $connection);语句。比如自己的ID是87,user列里面也有87,那么就会执行下面的语句。我是初学者,还劳烦写个完整的语句,谢谢了!

码哥子 | 园豆:44 (初学一级) | 2018-09-15 22:40

@码哥子: 那你可以在执行的语句后面带条件where啊,where 用子查询到表jzroom里面用like去匹配user列

程序员修炼之旅 | 园豆:976 (小虾三级) | 2018-09-16 08:04

你要执行的语句 where (select userID FROM jzroom where userID like '%87%') is not null

程序员修炼之旅 | 园豆:976 (小虾三级) | 2018-09-16 08:10

@猴子哥:谢谢, 在您的指导下我是这样写的代码:
$roomzx = $db->getOne("SELECT user FROM jz_room WHERE endtime= '0' AND user != 'null' ");
$roomidd = $db->getOne("SELECT id FROM jz_user ");
file_put_contents('log.txt',$roomzx,FILE_APPEND);

file_put_contents('log.txt',$roomidd,FILE_APPEND);
if(preg_match ($roomidd,$roomzx)) {

    return tip("您已登录", $connection);  

}
log.txt显示也已经读取到了我需要的值:{"87":1,"174":1} 87,但是好像匹配不了,没执行if里面的语句。
数据库结构如图

码哥子 | 园豆:44 (初学一级) | 2018-09-16 12:33

@猴子哥 你这个是PHP写的吧?不会php,但是我想按照我说的逻辑干,应该不会有问题吧,只有匹配到数据后才执行需要执行的逻辑

程序员修炼之旅 | 园豆:976 (小虾三级) | 2018-09-16 14:49

@猴子哥: 好的,谢谢,估计现在问题就是出在if(preg_match ($roomidd,$roomzx)) 这个匹配语句不正确了,不知哪位高手能否指点一下

码哥子 | 园豆:44 (初学一级) | 2018-09-16 18:42
其他回答(1)
0

终于解决了,用$userw = json_encode($roomzx ['user'],true);后得到的数据就是加了双引号的 ‘’{"87":1,"174":1}‘’,就能进行匹配了

码哥子 | 园豆:44 (初学一级) | 2018-09-18 21:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册