2016-03-24 4 views
0

私はうまく動作するレコードを検索するクエリがあります。次に、 "Seq"で始まり "1"を含むすべてのフィールド名をエコーする必要があります。1つを含むすべてのフィールドを探しているPHPのループループ

私のクエリ:

SELECT * FROM ROSE_Hist 
WHERE UniqueID = '1919' AND 1 IN (SeqID0101,SeqID0102,SeqID0103 ,SeqID0104,SeqID0105,SeqID0106,SeqID0107,SeqID0108,SeqID0109,SeqID0110,SeqID0201,SeqID0202,SeqID0203,SeqID0301,SeqID0302,SeqID0303,SeqID0304,SeqID0401,SeqID0402,SeqID0403,SeqID0404,SeqID0501, 
SeqID0502,SeqID0601,SeqID0602,SeqID0701,SeqID0702,SeqID0801,SeqID0802,SeqID0901,SeqID0902,SeqID0903,SeqID1001,SeqID1002,SeqID1003,SeqID1004,SeqID1101,SeqID1102,SeqID1201,SeqID1302,SeqID1303,SeqID1304,SeqID1305, 
SeqID1401,SeqID1402,SeqID1403,SeqID1404,SeqID1405,SeqID1406,SeqID1407,SeqID1408,SeqID1409,SeqID1410,SeqID1411,SeqID1501,SeqID1502,SeqID1504,SeqID1505,SeqID1601,SeqID1602,SeqID1603,SeqID1604,SeqID1605,SeqID1701,SeqID1702,SeqID1703,SeqID1704, 
SeqID1705,SeqID1801,SeqID1802,SeqID1901,SeqID1902,SeqID2001,SeqID2002,SeqID2101,SeqID2102,SeqID2201,SeqID2202,SeqID2203,SeqID2301,SeqID2302,SeqID2401,SeqID2402,SeqID2403,SeqID2501,SeqID2502,SeqID2503,SeqID2601,SeqID2602,SeqID2603,SeqID2701, 
SeqID2702,SeqID2703,SeqID2704,SeqID2801,SeqID2901,SeqID2902,SeqID3001,SeqID3002,SeqID3101,SeqID3201,SeqID3202,SeqID3203,SeqID3204,SeqID3301,SeqID3302,SeqID3401,SeqID3402,SeqID3501,SeqID3502,SeqID3601,SeqID3602,SeqID3603,SeqID3604,SeqID3605, 
SeqID3606,SeqID3701,SeqID3702,SeqID3703,SeqID3704,SeqID3801,SeqID3802,SeqID3803,SeqID3804,SeqID3901,SeqID3902,SeqID3903,SeqID3904,SeqID4001,SeqID4002,SeqID4003,SeqID4101,SeqID4102,SeqID4201,SeqID4202,SeqID4301,SeqID4302,SeqID4303,SeqID4304, 
SeqID4401,SeqID4501,SeqID4502,SeqID4503,SeqID4504,SeqID4505,SeqID4506,SeqID4507,SeqID4508,SeqID4509,SeqID4510,SeqID4511,SeqID4512,SeqID4513,SeqID4514,SeqID4601,SeqID4602,SeqID4603,SeqID4604,SeqID4701,SeqID4702,SeqID4703,SeqID4704,SeqID4705) ORDER BY Room ASC 

それから私は「配列」で始まり、番号「1」が含まれているフィールドだけの結果をループする必要があるとECH。

foreach ($row_RoomAudit as $key => $val) { 
    print "$key = $val\n"; 
} 

"foreeach"がすべてのフィールドをエコーし​​ているので、私はここで何か問題があります。 「1」を含む名前「Seq」で始まるフィールド名をエコーするだけで何をする必要がありますか。

お時間をありがとうございました。

+0

strposのような文字列関数を使用しようとしましたか? – DevMan

+0

'preg_match'を使うことができます:http://php.net/manual/en/function.preg-match.php – Alex

答えて

0

strposとの迅速な回避策が見つけて「1」とsubstrを見つけるために「配列」あなたは*を使用して、すべてのフィールドを選択しているためである

foreach ($row_RoomAudit as $key => $val) { 
     if (strpos($val, '1') !== FALSE && substr($val, 0, 3)=='Seq'){ 
      print "$key = $val\n"; 
     } 
    } 
+0

こんにちは、(strpos($ val、 '1')!== FALSE && substr($ val = 0、3)== 'Seq'){もし(strpos($ val、 '1')!== FALSE && substr($ key 0、3)== 'Seq'){、それは動作します。 – DCJones

0

。あなただけのこれらの特定の列を選択したい場合は、あなたがそうするようにクエリを変更する必要があります:もちろん

SELECT SeqID0101,SeqID0102,SeqID0103 ,SeqID0104,SeqID0105,SeqID0106,SeqID0107,SeqID0108,SeqID0109,SeqID0110,SeqID0201,SeqID0202,SeqID0203,SeqID0301,SeqID0302,SeqID0303,SeqID0304,SeqID0401,SeqID0402,SeqID0403,SeqID0404,SeqID0501, 
SeqID0502,SeqID0601,SeqID0602,SeqID0701,SeqID0702,SeqID0801,SeqID0802,SeqID0901,SeqID0902,SeqID0903,SeqID1001,SeqID1002,SeqID1003,SeqID1004,SeqID1101,SeqID1102,SeqID1201,SeqID1302,SeqID1303,SeqID1304,SeqID1305, 
SeqID1401,SeqID1402,SeqID1403,SeqID1404,SeqID1405,SeqID1406,SeqID1407,SeqID1408,SeqID1409,SeqID1410,SeqID1411,SeqID1501,SeqID1502,SeqID1504,SeqID1505,SeqID1601,SeqID1602,SeqID1603,SeqID1604,SeqID1605,SeqID1701,SeqID1702,SeqID1703,SeqID1704, 
SeqID1705,SeqID1801,SeqID1802,SeqID1901,SeqID1902,SeqID2001,SeqID2002,SeqID2101,SeqID2102,SeqID2201,SeqID2202,SeqID2203,SeqID2301,SeqID2302,SeqID2401,SeqID2402,SeqID2403,SeqID2501,SeqID2502,SeqID2503,SeqID2601,SeqID2602,SeqID2603,SeqID2701, 
SeqID2702,SeqID2703,SeqID2704,SeqID2801,SeqID2901,SeqID2902,SeqID3001,SeqID3002,SeqID3101,SeqID3201,SeqID3202,SeqID3203,SeqID3204,SeqID3301,SeqID3302,SeqID3401,SeqID3402,SeqID3501,SeqID3502,SeqID3601,SeqID3602,SeqID3603,SeqID3604,SeqID3605, 
SeqID3606,SeqID3701,SeqID3702,SeqID3703,SeqID3704,SeqID3801,SeqID3802,SeqID3803,SeqID3804,SeqID3901,SeqID3902,SeqID3903,SeqID3904,SeqID4001,SeqID4002,SeqID4003,SeqID4101,SeqID4102,SeqID4201,SeqID4202,SeqID4301,SeqID4302,SeqID4303,SeqID4304, 
SeqID4401,SeqID4501,SeqID4502,SeqID4503,SeqID4504,SeqID4505,SeqID4506,SeqID4507,SeqID4508,SeqID4509,SeqID4510,SeqID4511,SeqID4512,SeqID4513,SeqID4514,SeqID4601,SeqID4602,SeqID4603,SeqID4604,SeqID4701,SeqID4702,SeqID4703,SeqID4704,SeqID4705 FROM ROSE_Hist 
WHERE UniqueID = '1919' AND 1 IN (SeqID0101,SeqID0102,SeqID0103 ,SeqID0104,SeqID0105,SeqID0106,SeqID0107,SeqID0108,SeqID0109,SeqID0110,SeqID0201,SeqID0202,SeqID0203,SeqID0301,SeqID0302,SeqID0303,SeqID0304,SeqID0401,SeqID0402,SeqID0403,SeqID0404,SeqID0501, 
SeqID0502,SeqID0601,SeqID0602,SeqID0701,SeqID0702,SeqID0801,SeqID0802,SeqID0901,SeqID0902,SeqID0903,SeqID1001,SeqID1002,SeqID1003,SeqID1004,SeqID1101,SeqID1102,SeqID1201,SeqID1302,SeqID1303,SeqID1304,SeqID1305, 
SeqID1401,SeqID1402,SeqID1403,SeqID1404,SeqID1405,SeqID1406,SeqID1407,SeqID1408,SeqID1409,SeqID1410,SeqID1411,SeqID1501,SeqID1502,SeqID1504,SeqID1505,SeqID1601,SeqID1602,SeqID1603,SeqID1604,SeqID1605,SeqID1701,SeqID1702,SeqID1703,SeqID1704, 
SeqID1705,SeqID1801,SeqID1802,SeqID1901,SeqID1902,SeqID2001,SeqID2002,SeqID2101,SeqID2102,SeqID2201,SeqID2202,SeqID2203,SeqID2301,SeqID2302,SeqID2401,SeqID2402,SeqID2403,SeqID2501,SeqID2502,SeqID2503,SeqID2601,SeqID2602,SeqID2603,SeqID2701, 
SeqID2702,SeqID2703,SeqID2704,SeqID2801,SeqID2901,SeqID2902,SeqID3001,SeqID3002,SeqID3101,SeqID3201,SeqID3202,SeqID3203,SeqID3204,SeqID3301,SeqID3302,SeqID3401,SeqID3402,SeqID3501,SeqID3502,SeqID3601,SeqID3602,SeqID3603,SeqID3604,SeqID3605, 
SeqID3606,SeqID3701,SeqID3702,SeqID3703,SeqID3704,SeqID3801,SeqID3802,SeqID3803,SeqID3804,SeqID3901,SeqID3902,SeqID3903,SeqID3904,SeqID4001,SeqID4002,SeqID4003,SeqID4101,SeqID4102,SeqID4201,SeqID4202,SeqID4301,SeqID4302,SeqID4303,SeqID4304, 
SeqID4401,SeqID4501,SeqID4502,SeqID4503,SeqID4504,SeqID4505,SeqID4506,SeqID4507,SeqID4508,SeqID4509,SeqID4510,SeqID4511,SeqID4512,SeqID4513,SeqID4514,SeqID4601,SeqID4602,SeqID4603,SeqID4604,SeqID4701,SeqID4702,SeqID4703,SeqID4704,SeqID4705) ORDER BY Room ASC 

を、ループ内でフィルタリングすることも可能であるが、それは、データのみの要求に練習方が良いでしょうあなたは実際に必要です。したがって、これらの列を出力するだけでよい場合は、それらの列を選択する必要があります。

+0

こんにちは。 Connumの返信ごとに "Seq"で始まるフィールドだけを選択するようにクエリを変更しました。 $ strpos($ val、 '1')!== FALSE && substr($ val、0、3)== 'Seq'と入力したときに、Mawia HLが返すforeach($ row_RoomAudit $ key => $ val){ ){ "$ key = $ val \ n"; } }しかし、これは結果をエコーアウトしません。私は最初の2つのフィールドに "1"が含まれていることを知っています。何か案は? – DCJones

+0

完全なコード、特にクエリから '$ row_RoomAudit'への方法を教えてください そして、両方を行う必要がないように、列だけを選択してループ内のものをフィルタリングしてください。 – Connum

+0

こんにちは、Connum、私は持っているクエリ:$ RoomAudit = mysql_query($ query_RoomAudit、$ iMaint)または死ぬ(mysql_error()); $ row_RoomAudit = mysql_fetch_assoc($ RoomAudit); $ totalRows_RoomAudit = mysql_num_rows($ RoomAudit); $ strpos($ val、 '1')!== FALSE && substr($ val、0、3)== 'Seq'){ 印刷するとforeach($ row_RoomAudit $ key => $ val){ "$ key = $ val \ n"; } }「Seq」フィールドをすべて選択してフィルタで使用するのは、「1」を含むフィールドのみを返すことです。または私はこれを間違っているのですか? – DCJones

関連する問題