Я пытаюсь создать SQL-запрос на основе пары значений месяца и даты, которые я получаю напрямую с компьютера пользователя с помощью PHP.
Моя проблема в том, что мой код работает FINE на моем тестовом сервере (wampp), но зависает на рабочем сервере (IIS8).
По сути, у меня есть несколько операторов If, затем, сравнивающих переменные с другими переменными, и, если условия выполняются, они используют другую конкретную переменную для создания оператора SQL.
У меня есть другие функции odbc / php, которые корректно работают на этом же сайте, однако именно этот код и другая, аналогичная функция зависают на сервере.
Любая помощь приветствуется.
function tmlySales() { // last year, this month sales
include('odbc_connect.php');
$salesPersonID = $_SESSION['SESS_SAP_ID'];
$conn=odbc_connect($server,$user,$pass);
$m = date('m');
if($m == 01) {
$month = 'SSSA10';
$year = date('Y', strtotime('-1 year'));
}
if($m == 02) {
$month = 'SSSA11';
$year = date('Y', strtotime('-1 year'));
}
if($m == 03) {
$month = 'SSSA12';
$year = date('Y', strtotime('-1 year'));
}
if($m == 04) {
$month = 'SSSA01';
$year = date('Y');
}
if($m == 05) {
$month = 'SSSA02';
$year = date('Y');
}
if($m == 06) {
$month = 'SSSA03';
$year = date('Y');
}
if($m == 07) {
$month = 'SSSA04';
$year = date('Y');
}
if($m == 08) {
$month = 'SSSA05';
$year = date('Y');
}
if($m == 09) {
$month = 'SSSA06';
$year = date('Y');
}
if($m == 10) {
$month = 'SSSA07';
$year = date('Y');
}
if($m == 11) {
$month = 'SSSA08';
$year = date('Y');
}
if($m == 12) {
$month = 'SSSA09';
$year = date('Y');
}
$sql = "SELECT ".$month." FROM REPSA WHERE SSRP#1=".$salesPersonID." and SSYEAR =".$year."";
$result = odbc_exec($conn,$sql);
while($row = odbc_fetch_array($result)) {
$tmlySales = $row[$month];
$currency = number_format($tmlySales,2);
echo '$ '.$currency.'';
}
}
Без ошибки это довольно сложно.
Сначала я бы сказал
$m = date('m');
возвращается строка не восьмеричное.
Вместо того, чтобы делать:
if($m == 02)
Вы должны сделать (см. Цитаты):
if($m == '02')
Если вам нужен лучший ответ, предоставьте больше информации.
Других решений пока нет …