thinkphp 判断

lidaoying 2016-07-08 09:25:14
我在thinkphp中,用以下代码判断game数据库中Gamecards表下面的flag字段。发现如果数据库只有一个值用下面的代码就没有问题,

字段名:id flag
值: 1 1

但是数据库是下面这样的话就不行了。他还是值判断第一条数据库的flag值,我想判断flag的所有值里面是不是有1,而不是只判断第一条值。 请问是用select吗,但是不行求

字段名:id flag
值: 1 1
值: 1 0



实列化
$game = D('Game.Gamecards');
$usergame =$game->where(array('id'=> $_SESSION ['id'] ))->find();
判断
if ($usergame['flag'] == 1 ){

}
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanshs 2016-07-09
  • 打赏
  • 举报
回复
或者再加一个where('flag' => $text),然后用find() 对结果进行判断,有责为一个数组,没有则为null

$usergame =$game->where(array('id'=> $_SESSION ['id'] ))->where('flag' => $text)->find();
if($usergame) {
  //array
}else {
  //null
}
lanshs 2016-07-09
  • 打赏
  • 举报
回复
开发手册 模型 CURD操作 数据读取: 即使满足条件的数据不止一个,find方法也只会返回第一条记录(可以通过order方法排序后查询)。 换成select()
lidaoying 2016-07-09
  • 打赏
  • 举报
回复
引用 3 楼 zhangsheng_1992 的回复:
我随便找了张表 后边的字断你不用管 你就假设那个cenimaId代表你的flag 然后你看 有1有2吧 查询出来的结果是不是有2条 现在我全部改成1 现在再执行sql 是不是只有一条了?
我是要实现这样一个功能,现在代码是这样的, 数据库: 字段名:id flag 值: 1 1 值: 1 10 值: 1 a 值: 1 b 值: 1 8 值: 1 d 实列化 $text=trim(I('post.text')); // 判断这个前天的文本框内容在数据库是否存在。 $game = D('Game.Gamecards'); $usergame =$game->where(array('id'=> $_SESSION ['id'] ))->find(); 判断 if ($usergame['flag'] == $text ){ 不用ID判断方式。而是直接判断$text的内容在数据库flag字段是否存在 die ("<script>alert('“$text.“数据库已经被使用了,换个试试!');window.history.go(-1);</script>"); }else{ die ("<script>alert('“$text.“可以使用!');window.history.go(-1);</script>"); }
zhangsheng_1992 2016-07-08
  • 打赏
  • 举报
回复
//查询所有的纪录 然后按flag字段分组

$ret = $game->group('flag')->select();
if(count($ret > 1)){
     //证明结果不是都是0或者都是1
}else{
    if($ret[0]['flag] == 0){
        //都是0 
    }else{
       //都是1
    }
}
如果flag都一样 比如都是0或者都是1 那么查询出来的结果只有1条 你判断下这条的值即可 否则 查询出来的结果是两条
zhangsheng_1992 2016-07-08
  • 打赏
  • 举报
回复
我随便找了张表

后边的字断你不用管 你就假设那个cenimaId代表你的flag 然后你看 有1有2吧

查询出来的结果是不是有2条
现在我全部改成1

现在再执行sql

是不是只有一条了?
lidaoying 2016-07-08
  • 打赏
  • 举报
回复
引用 1 楼 zhangsheng_1992 的回复:
//查询所有的纪录 然后按flag字段分组

$ret = $game->group('flag')->select();
if(count($ret > 1)){
     //证明结果不是都是0或者都是1
}else{
    if($ret[0]['flag] == 0){
        //都是0 
    }else{
       //都是1
    }
}
如果flag都一样 比如都是0或者都是1 那么查询出来的结果只有1条 你判断下这条的值即可 否则 查询出来的结果是两条
不行啊

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧