Здравствуйте. Не могу понять в чем моя ошибка
Есть функция, которая аякс запросом получает данные
function GetOrders(action, status, fromTime, toTime, workId, serviceID, companyID, fromHour, toHour) {
var html = $.ajax(
{
url: "request.php?action=" + action + "&status=" + status + "&fromTime=" + fromTime + "&toTime=" + toTime + "&workId=" + workId + "&serviceID=" + serviceID + "&companyID=" + companyID + "&warehouseID=" + warehouseID + "&fromHour=" + fromHour + "&toHour=" + toHour + "",
dataType: 'json',
async: false,
success: function (data) { },
error: function (req, err) {}
}).responseText;
return (html);
}
Есть также обработка запроса
$link = mysql_connect($hostname, $username, $password) or die('Не удалось соединиться: ' . mysql_error());
mysql_select_db($dbName) or die('Не удалось выбрать базу данных');
$status = $_GET['status'];
$fromTime = $_GET['fromTime'];
$toTime = $_GET['toTime'];
$workId = $_GET['workId'];
$serviceID = $_GET['serviceID'];
$companyID = $_GET['companyID'];
$warehouseID = $_GET['warehouseID'];
$fromHour = $_GET['fromHour'];
$toHour = $_GET['toHour'];
if (($fromHour != "") && ($toHour != ""))
{
$fromTime = $fromTime.' '.$fromHour.':00:00';
$toTime = $toTime.' '.$toHour.':00:00';
}
//else
//{
//$fromTime .= ' 00:00:00';
//$toTime .= ' 23:00:00';
//}
// отменённые/выполненные заказы за сутки(по часам)
if ($action == "getCountOnHours")
{
$rows = array();
$query = 'SELECT hours.h AS HOUR , COUNT(orders.id) AS count
FROM orders ';
if ($companyID != 0)
$query .= 'JOIN works ON (orders.cid = works.cid) AND (works.uid IN ('.$companyID.'))';
if ($serviceID != 0)
$query .= 'JOIN services ON (orders.serviceID = services.id) AND (services.id IN('.$serviceID.'))';
if ($workId != 0)
$query .= 'JOIN workCloud ON (orders.cid = workCloud.id) AND (workCloud.id IN('.$workId .'))';
if ($warehouseID != 0)
$query .= 'JOIN warehouses ON (orders.warehouseID = warehouses.id) AND (warehouses.id IN('.$warehouseID.'))';
//$query .= 'RIGHT JOIN hours ON hours.h = HOUR(date_add(orders.closeTime, INTERVAL orders.timeOffset second)) AND ';
$query .= 'RIGHT JOIN hours ON hours.h = HOUR(DATE_SUB(DATE_ADD( orders.closeTime, INTERVAL orders.timeOffset SECOND), INTERVAL orders.settlementPeriod HOUR )) ';
if (($fromHour != "") && ($toHour != ""))
{
$query .= ' AND AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN "'.$fromTime.'" AND "'.$toTime.'")';
}
else
{
$query .= ' AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN date_add("'.$fromTime.' 00:00:00", interval orders.settlementPeriod hour) AND date_add("'.$toTime.' 23:59:59", interval orders.settlementPeriod hour))';
}
/*if (($fromHour != "") && ($toHour != ""))
$query .= '(date_add(orders.closeTime, INTERVAL orders.timeOffset second) BETWEEN "'.$fromTime.'" AND "'.$toTime.'")';
else
$query .= '(date_add(orders.closeTime, INTERVAL orders.timeOffset second) BETWEEN "'.$fromTime.' 00:00:00" AND "'.$toTime.' 23:00:00")';*/
$query .= ' AND (orders.status IN( '.$status.' )) GROUP BY HOUR';
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());
while ($row = mysql_fetch_array($result))
{
$rows[] = $row;
}
echo json_encode($rows);
}
Изменил на неправильный запрос в части
if (($fromHour != "") && ($toHour != ""))
{
$query .= ' AND
AND (DATE_ADD(orders.closeTime, INTERVAL orders.timeOffset SECOND ) BETWEEN "'.$fromTime.'" AND "'.$toTime.'")';
}
чтобы наверняка не выполнился при $fromHour != "" $toHour != "". Но никак при указанных fromHour и toHour туда не "заходит" какие бы параметры не указывал.
Пробовал и так
http://test/order_diagramm.php?graph=orders&fromTime=2013-11-29&fromHour=00&toTime=2013-11-29&toHour=23&companyID=1
и так
http://test/order_diagramm.php?graph=orders&fromTime=2013-11-29&fromHour=&toTime=2013-11-29&toHour=&companyID=1
Но всегда выполняется так, как-будто значения
fromHour и
toHour не указаны. Причем если менять другие параметры, то все отрабатывает, загвоздка именно на этих параметрах. Подскажите в чем дело. Заранее спасибо