ビジネスが終了した曜日をチェックするためにこれを実行する最も速い方法は何ですか?ここでパフォーマンスmySql PHP - 週の休業日
$closingDaysCheck = mysql_query("SELECT * FROM businessClosingDays WHERE Bid='$Bid' LIMIT 1", $con);
if($closingDaysCheck) {
if(mysql_num_rows($closingDaysCheck) >0) {
while ($closed = mysql_fetch_assoc($closingDaysCheck)) {
if((date("w", $finalDate) == 0) && ($closed[0] != 0)) { // SUNDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 6) && ($closed[6] != 0)) { // SATURDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 5) && ($closed[5] != 0)) { // FRIDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 4) && ($closed[4] != 0)) { // THRUSDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 3) && ($closed[3] != 0)) { // WEDNESDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 2) && ($closed[2] != 0)) { // TUESDAY
$active = 'inactive';
} else if((date("w", $finalDate) == 1) && ($closed[1] != 0)) { // MONDAY
$active = 'inactive';
} else {
$active = 'active';
}
}
}
}
は、データベース、最終日は日曜日で、それが閉じています:
CREATE TABLE `businessClosingDays` (
`Bid` varchar(40) NOT NULL,
`1` tinyint(1) NOT NULL,
`2` tinyint(1) NOT NULL,
`3` tinyint(1) NOT NULL,
`4` tinyint(1) NOT NULL,
`5` tinyint(1) NOT NULL,
`6` tinyint(1) NOT NULL,
`0` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `businessClosingDays` VALUES('9', 0, 0, 0, 0, 0, 0, 1);
パトリック、私はあなたのアドバイス、次のそれをテストしてきました。 最終的には、1ヶ月のすべての日をチェックする必要があります。 私は1日でテストしましたが、これは終了する必要があります。 私はmysqlから配列を作成します。 そして、その日付の曜日が配列内にあるかどうかをチェックします。何らかの理由で動作しません。 私は何が間違っていますか?
$dateToCheck = 1327791600; // timestamp
$result = mysql_query("SELECT * FROM businessClosingDays WHERE Bid = '9'");
while ($closedDays = mysql_fetch_array($result, MYSQL_NUM)) {
echo $closedDays[0], $closedDays[1], $closedDays[2], $closedDays[3], $closedDays[4], $closedDays[5], $closedDays[6];
}
if (in_array(date("w", $dateToCheck), $closedDays)) {
echo "in it";
} else {
echo "not";
}
変数$ finalDateの内容を教えてください。 – zaf
こんにちはザフ、申し訳ありませんが、$ finaldateは毎月の日です。基本的に、このスクリプトはjavascript PopUp Calendarを構築します。そして、毎月の日が月曜日か火曜日かどうかを確認するために、例のように日曜日が閉じられると仮定します(したがって、データベースの1)。 PopUpの毎日は「非アクティブ」になります。 @zaf – Sebastian
-1理由なしで「最速の方法」を求めるため –