0

名前のリストとビットごとの値が関連付けられたデータベーステーブルがあります。実際の問題なしにphp配列を作成できますが、配列内の結果の条件のどれにマップされるかを別のクエリで確認できる必要があります。次に、関連付けられた名前を表示します。

条件 ビット単位テーブル

$DBH = new PDO("dblib:host=$myServer;dbname=$SystemDB", $myUser, $myPass);
$DBH1 = new PDO("dblib:host=$myServer;dbname=$TaxiHistoryDB", $myUser, $myPass);


$sth = $DBH->prepare("SELECT dbo.Conditions.Name, dbo.Conditions.ConditionValue     
                      FROM dbo.Conditions 
                      WHERE dbo.Conditions.ConditionID > 0");
$sth->execute();

$ConditionsArray = $sth->fetchAll();

$STH1 = $DBH1->query("SELECT dbo.tblBooking.Conditions 
                      FROM dbo.tblBooking  
                      WHERE dbo.tblBooking.BookingID = '36607762'");

$STH1->setFetchMode(PDO::FETCH_LAZY);

while($row1 = $STH1->fetch()){

$condition = $row1->Conditions;


}//end while

最初のクエリでは、次のような結果が得られます。

Array ( [0] => Array ( [Name] => [0] => [ConditionValue] => 1 [1] => 1 ) 
[1] => Array ( [Name] => [0] => [ConditionValue] => 2 [1] => 2 ) 
[2] => Array ( [Name] => [0] => [ConditionValue] => 4 [1] => 4 ) 
[3] => Array ( [Name] => [0] => [ConditionValue] => 8 [1] => 8 ) 
[4] => Array ( [Name] => [0] => [ConditionValue] => 16 [1] => 16 ) 
[5] => Array ( [Name] => [0] => [ConditionValue] => 32 [1] => 32 ) 
[6] => Array ( [Name] => [0] => [ConditionValue] => 64 [1] => 64 ) 
[7] => Array ( [Name] => [0] => [ConditionValue] => 128 [1] => 128 ) 
[8] => Array ( [Name] => Exterior Hoist [0] => Exterior Hoist [ConditionValue] => 256 [1] => 256 ) 
[9] => Array ( [Name] => [0] => [ConditionValue] => 512 [1] => 512 ) 
[10] => Array ( [Name] => [0] => [ConditionValue] => 1024 [1] => 1024 ) 
[11] => Array ( [Name] => [0] => [ConditionValue] => 2048 [1] => 2048 ) 
[12] => Array ( [Name] => [0] => [ConditionValue] => 4096 [1] => 4096 ) 
[13] => Array ( [Name] => [0] => [ConditionValue] => 8192 [1] => 8192 ) 
[14] => Array ( [Name] => [0] => [ConditionValue] => 16384 [1] => 16384 ) 
[15] => Array ( [Name] => [0] => [ConditionValue] => 32768 [1] => 32768 ) 
[16] => Array ( [Name] => Parcel [0] => Parcel [ConditionValue] => 65536 [1] => 65536 ) 
[17] => Array ( [Name] => Cheques [0] => Cheques [ConditionValue] => 131072 [1] => 131072 )
[18] => Array ( [Name] => OuterArea [0] => OuterArea [ConditionValue] => 262144 [1] => 262144 ) 
[19] => Array ( [Name] => [0] => [ConditionValue] => 524288 [1] => 524288 ) 
[20] => Array ( [Name] => [0] => [ConditionValue] => 1048576 [1] => 1048576 ) 
[21] => Array ( [Name] => V [0] => V [ConditionValue] => 2097152 [1] => 2097152 )
[22] => Array ( [Name] => Wheelchair [0] => Wheelchair [ConditionValue] => 4194304 [1] => 4194304 ) 
[23] => Array ( [Name] => M50 [0] => M50 [ConditionValue] => 8388608 [1] => 8388608 ) 
[24] => Array ( [Name] => Executive Car (Silver) [0] => Executive Car (Silver) [ConditionValue] => 16777216 [1] => 16777216 ) 
[25] => Array ( [Name] => Two M50s [0] => Two M50s [ConditionValue] => 33554432 [1] => 33554432 ) 
[26] => Array ( [Name] => Special [0] => Special [ConditionValue] => 67108864 [1] => 67108864 ) 
[27] => Array ( [Name] => Animal [0] => Animal [ConditionValue] => 134217728 [1] => 134217728 ) 
[28] => Array ( [Name] => COD Parcel [0] => COD Parcel [ConditionValue] => 268435456 [1] => 268435456 ) 
[29] => Array ( [Name] => 9 seater [0] => 9 seater [ConditionValue] => 536870912 [1] => 536870912 ) 
[30] => Array ( [Name] => 6 seater [0] => 6 seater [ConditionValue] => 1073741824 [1] => 1073741824 ) 
[31] => Array ( [Name] => 7 seater [0] => 7 seater [ConditionValue] => 2147483648 [1] => 2147483648 ) 
[32] => Array ( [Name] => Wagon [0] => Wagon [ConditionValue] => 4294967296 [1] => 4294967296 ) 
[33] => Array ( [Name] => Maxi10str [0] => Maxi10str [ConditionValue] => 8589934592 [1] => 8589934592 ) 
[34] => Array ( [Name] => Bike [0] => Bike [ConditionValue] => 17179869184 [1] => 17179869184 ) 
[35] => Array ( [Name] => NonMaxi [0] => NonMaxi [ConditionValue] => 34359738368 [1] => 34359738368 ) 
[36] => Array ( [Name] => NonMaxiOrMulti [0] => NonMaxiOrMulti [ConditionValue] => 68719476736 [1] => 68719476736 ) 
[37] => Array ( [Name] => [0] => [ConditionValue] => 137438953472 [1] => 137438953472 ) 
[38] => Array ( [Name] => Towbar [0] => Towbar [ConditionValue] => 274877906944 [1] => 274877906944 ) 
[39] => Array ( [Name] => NO DISPATCH [0] => NO DISPATCH [ConditionValue] => 549755813888 [1] => 549755813888 ) )

ここと他の場所でいくつかの投稿を読みました。ビット単位の操作がどのように機能するかは理解していますが、構文やプロセスについて少し迷っています。基本的に、ジョブ番号には 0 ~ 40 の条件が関連付けられています。

while ループで次のコードを使用

echo $row1->Conditions;

私は得る: 67108864

私が知っているのは「特別」を表す

2番目のクエリの結果を最初のクエリが作成した配列と比較する方法がわかりません。

ありがとう。

4

1 に答える 1