检查databasefield是否包含来自内爆变量的值

时间:2013-10-17 09:03:23

标签: php mysql explode implode

$users = explode(",", $particiTemp);
                foreach($users as $user) {
                    echo "$user";
                }

                $checkSQL = mysql_query("SELECT * FROM this WHERE x>'$y' && v<'$z' &&  user IN ($particiTemp)");
                while($checkData = mysql_fetch_array($checkSQL)){

                }

我有点卡在这里......

我想检查$ particiTemp(例如:$particiTemp = "2,23,11,4,")是否在字段$checkData[user] ($checkData[user] = "5,22,11,23";)中。

我试图爆炸并尝试mysql IN,但我不知道如何检查字段$checkData[user]是否包含其中一个内爆$particiTemp

2 个答案:

答案 0 :(得分:2)

“In”子句需要值为'2','23','11','4'而不是“2,23,11,4”,

所以操纵你的数组以获得结果。

$innval = '';
foreach($users as $user) {
  if($user != '')
    $innval .= "'".$user."',";
}
$innval = substr($innval,0,-1);  // to remove last extra ,

现在在查询中使用此$ innval变量来获取结果

$checkSQL = mysql_query("SELECT * FROM this WHERE x>'$y' && v<'$z' &&  user 
IN ($innval)");

希望这有帮助

答案 1 :(得分:0)

想法:爆炸数组检查每个带有INSTR的mysql_query。

应该工作,现在就试试。