为if / else

时间:2015-04-23 14:06:28

标签: php mysql pdo

我需要在表格的一列中获取所有值,以便我可以为另一个查询创建白名单。这是我如何得到的:

$stmt = $dbh->prepare("select GROUP_CONCAT( cohort_id SEPARATOR ',') as cohort_id from ( select distinct cohort_id from table_cohorts) as m"); 
$stmt->execute(); 
$row = $stmt->fetch();
$avails = json_encode($row);

如果我var_dump $avails,我明白了:

string(125) "{"cohort_id":"national_percent,database_percent,cohort_1,cohort_2","0":"national_percent,database_percent,cohort_1,cohort_2"}"

带有“cohort_id”的东西就是我想要的。我需要形成一个数组,所以我可以把它放在这样的东西:

(in_array($sortvalue, $arrayofpossibleoptions)) // $sortvalue来自AJAX

如何以正确的格式获取此信息?还有一个问题,我需要在$arrayofpossibleoptions或类似的东西中添加一个额外的值,但不确定正确的语法是什么:

(in_array($sortvalue, $arrayofpossibleoptions || 'another' ))

如果我var_dump $row,我明白了:

array(2) {
  ["cohort_id"]=>
  string(51) "national_percent,database_percent,cohort_1,cohort_2"
  [0]=>
  string(51) "national_percent,database_percent,cohort_1,cohort_2"
}

1 个答案:

答案 0 :(得分:1)

如果您需要将此数据加载到in_array,那么它应该是数组形式,您不能使用json字符串。

$stmt = $dbh->prepare('SELECT DISTINCT cohort_id FROM table_cohorts'); 
$stmt->execute();
$cohort_ids = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $cohort_ids[] = $row['cohort_id'];
}

if(in_array($user_input, $cohort_ids)) {
    // do the rest
} else {
    // oops your input is not any of those
}