Chvalov
@Chvalov

Не выводит данные с БД InterBase, в чем ошибка?

Запрос
SELECT  UNITSTAT, DTSTAT, UNITID,
0 PhNom, 0 PhMax, 0 PhA, 0 PhB, 0 PhC
from STATHIST
WHERE UNITID = 216
AND DtStat between '01.10.2015 11:19' and '06.11.2015 11:19'
ORDER BY DTSTAT DESC
ROWS 20
выполнен в IBExpert возвращает мне следующие:e91f659c0d91462ebcd11c273c891421.png

А вот такой же запрос только в PHP возвращает мне пустые колонки:
4e00abd7033d45f99830a5d611111706.png
Вот код:
<?php
            include ("bd_config.php");   // подключение блока где реализуется подключение к БД
            $strSQL = "SELECT  UNITSTAT, DTSTAT, UNITID, 0 PhNom, 0 PhMax, 0 PhA, 0 PhB, 0 PhC from STATHIST
            WHERE UNITID = 215
            AND DtStat between '".$_POST['date_start']."' and '".$_POST['date_stop']."'
            ORDER BY DTSTAT DESC
            ROWS 20"; // запрос
            
            $rs = ibase_query($strSQL, $db);                          
            $table = "<table border=1 width = '600px' align=center>";
                $k=1;
            while($row = ibase_fetch_row($rs)) {                   //цикл
            if($k%2==0) $color="#FFFFFF";else $color="#C0C0C0"; 
                $k++;
                $table .= "<tr BGCOLOR='$color'>";
                $table .= "<td >".$row['UNITSTAT']."</td>";
                $table .= "<td >".$row['DTSTAT']."</td>";
                $table .= "<td >".$row['UNITID']."</td>";
                $table .= "<td >".$row['PHNOM']."</td>";
                $table .= "<td >".$row['PHMAX']."</td>";
                $table .= "<td >".$row['PHA']."</td>";
                $table .= "<td >".$row['PHB']."</td>";
                $table .= "<td >".$row['PHC']."</td>";
                $table .= "</tr>";
                  }
            
            $table .= "</table>";
                    echo $table;           // выводится
            ?>
  • Вопрос задан
  • 616 просмотров
Решения вопроса 1
alex-saratov
@alex-saratov
Я вижу что число строк совпадает c IBExpert . Значит просто выведите в шаблон
$table .= '<pre>'. var_export( $row, TRUE ).'</pre>';


Увидите из чего состоит переменная $row а там видно будет.

ibase_fetch_row - возвращает массив где индексы числа, ibase_fetch_assoc - возвращает массив где индексы соответствуют названиям полей.
Либо меняйте
$table .= "".$row['INITSTAT']."";
на
$table .= "".$row[0]."";
и далее по аналогии

Либо Есть еще один вариант изменить функцию на ibase_fetch_assoc она отдаст массив с названиями полей.

Кроме того чтобы е возникали ошибки от ibase_fetch_row и ibase_fetch_assoc стоит проверять ответ обращения к базе. Если не FALSE значит запрос выполнен успешно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы