0

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

但是,当我提取数据时,如果 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);
?>
4

2 回答 2

0

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

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

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

if(in_array('2',$tests) || in_array('48',$tests))
于 2012-10-12T00:06:38.707 回答
0

in array 应该是一个实际的数组

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

另外,最好把

$tests = array();

在while循环之前,然后将循环内的代码更改为读取

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

那么你可以取消 '$tests = explode(...' 行。

于 2012-10-12T00:03:47.067 回答