0

誰かがこの問題で私を助けることができるかどうか疑問に思っています...特定の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);
?>
4

2 に答える 2

0

配列内は実際の配列でなければなりません

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

また、入れた方が良いでしょう

$tests = array();

while ループの前に、ループ内のコードを read に変更します。

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

次に、「$tests = destroy(...」行を廃止できます。

于 2012-10-12T00:03:47.067 に答える
0

配列と次の行の文字列を比較しているため、in_array テストに問題があります。

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

上記の行は、文字列「2, 48」が配列に存在するかどうかを確認します。ただし、配列には 1 つの要素として 2 があり、別の要素として 48 があります。これを修正するには、次のような方法で各要素を個別に検索できます。

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