次のことを行うための最も効率的な方法を探しています...
id、eventid、movetypeの 3 つのフィールドを持つテーブルがあり、一致するeventidを持つすべてのエントリをデータベースに照会する次のコードがあります。
$get_results = mysql_query("SELECT * FROM table WHERE eventid='$eventid'");
while($row = mysql_fetch_array($get_results)){
// store results in array
$move_type_array = explode(" ", $row['movetype']);
}
注: movetypeは、Internal、Outgoing、Incoming の 3 つの値のみです。
一連のダミー データを使用すると、var_dump($move_type_array)は次のように出力できます。
array(1) { [0]=> string(8) "Internal" } array(1) { [0]=> string(8) "Internal" }
出力の別の例は次のとおりです。
array(1) { [0]=> string(8) "Internal" } array(1) { [0]=> string(8) "Incoming" } array(1) { [0]=> string(8) "Outgoing" }
次に、出力をチェックして、次の条件が満たされているかどうかを確認する必要があります。
- 配列にInternalが 2 回含まれていますか?
- 配列にInternal が 1 回しか含まれていない場合、配列にはIncomingとOutgoingも含まれていますか?
いずれかの条件が満たされている場合は、どの条件が満たされているかを示すメッセージが表示され、それ以外の場合は、条件が満たされていないことが通知されます。
in_array() などの多くの PHP 関数を使用してみました。また、データを文字列に格納して preg_match() を使用しようとしましたが、両方の方法で失敗しました。