С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
 
leech
1 / 1 / 0
Регистрация: 17.11.2010
Сообщений: 40
1

Sql-запрос возвращает ошибку в ajax

02.10.2018, 10:18. Просмотров 445. Ответов 20
Метки ajax, js, php, sql (Все метки)

Доброго времени суток!

Делаю SQL-запрос к БД через ajax и проваливаюсь в ошибку.

Сам запрос обкатан в MS SQL Management Studio - отрабатывает правильно. В php конкретные значения заменены на переменные. Помогите найти в чем ошибка!

функция, вызываемая по событию onclick:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function getActiveDevice(tec_id, device_id) {
     $.ajax({
          url: "php/sqlQuery.php",
          type: "GET",
          dataType: "json",
          async: "false",
          data: 
            {
            tec_id:tec_id,
            device_id:device_id
            },
          success:function(result)
          {
              console.log("Success: ", result)
          },
          error:function(result) {
              console.log("error", typeof result, result);
          },
      });
}
запрос к БД в sqlQuery.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
  $id_tec = $_GET['tec_id'];
  $id_device = $_GET['device_id'];
 
  include_once '../php/DBconnect.php'; 
 
  if ($id_tec == 0) {  // в базе id_tec начинается с 1, поэтому возвращаем результат 'all' и завершаем... кстати тоже не работает ;)
    echo "all";
    exit();
    } else {
       $db_query = "SELECT gftec.[Id]
                        ,gftec.[ID_TEC]
                        ,gftec.[dattime]
                        ,gftec.[p]
                        ,gftec.[t]
                        ,gftec.[q]
                        ,gftec.[tabl]
                          ,Device.[ID]
                          ,Device.[Name]
                          ,Device.[OrderNum]
                          ,Device.[IdDataType]
              FROM (
                SELECT * FROM gftec WHERE [ID_TEC]=".$id_tec.") AS gftec JOIN (
                SELECT * FROM Device WHERE [Id_tec]=".$id_tec.") AS device ON gftec.[tabl]=device.[ID]
              WHERE gftec.[Id] IN (select max(Id) FROM gftec WHERE gftec.[ID_TEC]=".$id_tec." GROUP BY gftec.[tabl])
                ORDER BY device.[OrderNum]";
   }
    $odbc_result = odbc_exec($db_connect,$db_query);
    $device_count = odbc_num_rows($odbc_result);
 
    if ($odbc_result)
        for ($i=0; $i <$device_count ; $i++) {
          $res_d_name[$i] = odbc_result($odbc_result,"Name");
          $res_p[$i] = odbc_result($odbc_result,"p");
          $res_t[$i] = odbc_result($odbc_result,"t");
          $res_q[$i] = odbc_result($odbc_result,"q");
          $res_dattime[$i] = date("d:m:Y h:i:s", strtoTime(odbc_result($odbc_result,"dattime")));
          odbc_fetch_row($odbc_result);
       }
        echo json_encode(array('c' => $device_count, 'd_name' => $res_d_name, 'p' => $res_p, 't' => $res_t, 'q' => $res_q, 'dattime' => $res_dattime));
      }
    else
     {          echo "\n - NOT table readed";   }
 
?>
лог результата выполнения:
error object [object Object]
проблема явно в SQL, т.к., если упрощаю запрос до выборки из 1 таблицы,
PHP
1
2
3
4
5
6
7
8
9
10
11
$db_query = "SELECT [Id]
                     ,[ID_TEC]
                     ,[dattime]
                     ,[p]
                     ,[t]
                     ,[q]
                     ,[tabl]
                  FROM [GF].[dbo].[gftec]
                  where [ID_tec]=".$id_tec." and [Id] in (select max(id) from [GF].[dbo].[gftec]
                                                                  where [ID_TEC]=".$id_tec."
                                                                  group by [tabl])";
дает результат
Success: [object Object]
p.s. надеюсь с разделом форума не ошибся...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2018, 10:18
Ответы с готовыми решениями:

Ajax-запрос возвращает знаки ? (крокозябры)
Добрый день! Написал ajax-запрос к php-файлу, вроде работает, но возвращает знаки вопроса...

Кодировка в ajax, возвращает с сервера крякозябрики
м, при ajax запросе возвращает мне крякозябрики вот код &lt;script&gt;...

Ajax - вызывает ошибку в IE
new Ajax(a.getProperty('href'),{method:'get',update:'lightbox_content',data:'tolightbox='+1,...

Ajax запрос
Делаю приложение на ASP.Net MVC4. У меня есть форма для сортировки данных, что в таблице. Свой POST...

Ajax запрос
Суть такова: при заходе на страницу php скрипт берет данные из бд и отдает jsу посредством ajax...

20
leech
1 / 1 / 0
Регистрация: 17.11.2010
Сообщений: 40
10.10.2018, 14:18  [ТС] 21
проблема была в кодировке
Решилось добавлением 1 строки в цикл формирования массивов
PHP
1
2
3
4
5
6
7
8
9
    if ($odbc_result) { 
        for ($i=0; $i <$device_count ; $i++) {
          $res_dn[$i] = odbc_result($odbc_result,"Name");
          $res_dn[$i] = iconv('windows-1251', 'utf-8', $res_dn[$i]); // меняет кодировку с cp1251 на utf-8
          $res_p[$i] = odbc_result($odbc_result,"p");
          $res_t[$i] = odbc_result($odbc_result,"t");
          $res_q[$i] = odbc_result($odbc_result,"q");
          $res_dattime[$i] = date("d:m:Y h:i:s", strtoTime(odbc_result($odbc_result,"dattime")));
          odbc_fetch_row($odbc_result);       }
0
10.10.2018, 14:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2018, 14:18

AJAX вместо результата обработчика возвращает, исходный код обработчика
Здравствуйте, начал изучать AJAX и столкнулся с проблемой, при GET запросе в котором я стучу в файл...

AJAX запрос к облачной БД
Помогите с заданием. Необходимо создать три AJAX запроса: чтение, запись и удаление к облачной БД....

AJAX запрос с авторизацией
Доброго всем! Пытаюсь получить данные с сайта, на котором не зарегистрирован, но есть токен. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru