如果inarray()检查,尝试获取字段数据

时间:2012-10-11 23:55:08

标签: php sql-server arrays

只是想知道是否有人可以帮我解决这个问题... 我希望能够检查某个ID(例如用户是否已登录)这些用户的ID将从表中提取,然后输入数组,然后检查它是否在那里。

然而,当我拉取数据时,if inarray()不再像我在代码中直接键入而不是拉动它一样。

我想提取已批准的ID,以便他们可以访问某个链接!

任何帮助将不胜感激!谢谢!

<?php
mssql_select_db("$ins", $con);

$result = mssql_query("SELECT ID FROM Event WHERE  EventPublic LIKE 'Yes' AND EventDate >=       GETDATE() -1   ORDER BY EventDate ASC    ");


while($row = mssql_fetch_array($result))
{



$test = "". $row['ID'] .",";

}


$tests = explode(',', $test);


if (in_array("2, 48", $tests)) {
   echo "WOO";
 }
 else
{
echo "BOO";
 }


mssql_close($con);
?>

2 个答案:

答案 0 :(得分:0)

数组中的

应该是一个实际的数组

in_array(array('2', '48'), $tests)

另外,最好放

$tests = array();
在while循环之前

,然后更改循环内的代码以读取

$tests[] = $row['ID'];

然后你可以取消'$ tests = explode(...'行。

答案 1 :(得分:0)

您的in_array测试存在问题,因为您正在比较数组和以下行中的字符串:

if (in_array("2, 48", $tests))

以上行检查数组中是否存在字符串“2,48”。但是数组将有2个作为一个元素,48个作为一个单独的元素。要解决此问题,您可以使用以下内容单独搜索每个元素:

if(in_array('2',$tests) || in_array('48',$tests))