powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP+Oracle) Помогите найти ошибку в коде???
20 сообщений из 20, страница 1 из 1
(PHP+Oracle) Помогите найти ошибку в коде???
    #33657239
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тут понимание, то ли в php то ли oracle

Пишу в sqlplus
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> select user_name,to_char(dt, 'dd.mm.yyyy hh:mi')  from Oracledb.Logoff where user_name='user';

USER_NAME
--------------------------------------------------------------------------------
TO_CHAR(DT
----------------
user
 11 . 11 . 2005   05 : 06 

user
 27 . 02 . 2006   11 : 35 

user
 28 . 02 . 2006   11 : 07 

Такой же запрос пишу в PHP...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
$stmt = ociparse($conn,"select USER_NAME,to_char(dt, 'dd.mm.yyyy hh:mi') from Oracledb.Logoff where USER_NAME='".$user."'");
ociexecute($stmt,OCI_DEFAULT);
echo "<table>\n";
$i= 1 ;
  while (ocifetch($stmt)){
    echo "<tr><td>".$i.
        "</td><td>".ociresult($stmt,"USER_NAME").
        "</td><td>".ociresult($stmt,"DT").
        "</td></tr>\n";
    $i++;
}
echo "</table>";
echo "<b>Всего строк: </b>".OCIRowCount($stmt);

Код: plaintext
1.
2.
3.
результат в браузере вижу такой
1	user	11-NOV-05
2	user	27-FEB-06
 Всего строк:  12

Все перепробовал, но результат один и тот же либо пустая колонка даты.
Где я ошибся?
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33657537
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй
'DD.MM.YYY HH24:MI'
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33657540
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Y забыл
'DD.MM.YYYY HH24:MI'
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33657628
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawebY забыл
'DD.MM.YYYY HH24:MI'

пустая колонка (ничего не возвращает)..:(
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33657915
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однозначно с ПХП что-то не так, а что ? не спец.
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33658007
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальное имя полю с текстом даты установите.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33659870
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНормальное имя полю с текстом даты установите.
----------------------------------------
Артисты не приехали, приехали цыгане

менял поля на что-то все равно не выводится, start_dt нормальное имя поля?
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33659871
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawebОднозначно с ПХП что-то не так, а что ? не спец.
похоже на то...

как извлечь список полей из ociresult($stmt,"DT") ? Дело в том, что при таком запросе
Код: plaintext
$stmt = ociparse($conn,"select USER_NAME, DT from Oracledb.Logoff where USER_NAME='".$user."'");

колонка заполняется, а так нет... Возможно ошибка в имени поля?

Код: plaintext
$stmt = ociparse($conn,"select USER_NAME,to_char(DT, 'dd.mm.yyyy hh:mi') from Oracledb.Logoff where USER_NAME='".$user."'");
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33660164
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм, проблема решилась, немного почитав описание функций oracle
вот текст, взят из http://ru.php.net/manual/ru/function.oci-result.php
Описание
mixed oci_result ( resource statement, mixed field )

oci_result() возвращает данные из поля field текущей строки результата (см. oci_fetch()). oci_result() возвращает данные в виде строк, кроме абстрактных типов (ROWID, LOB и FILE). В случае ошибки oci_result() возвращает FALSE.

В качестве параметра field вы можете использовать номер поля (начиная с 1) или его имя в верхнем регистре.

немного изменив PHP код
Код: plaintext
"</td><td>".ociresult($stmt,"DT").

на

Код: plaintext
"</td><td>".ociresult($stmt, 2 ).

результат

Код: plaintext
1.
1	user	11.11.2005 05:06
2	user	27.02.2006 11:35

Всем спасибо!
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33660285
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальный алиас для поля пропишите и будет вам счастье.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33660299
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНормальный алиас для поля пропишите и будет вам счастье.
----------------------------------------
Артисты не приехали, приехали цыгане

Объясни мне, что ты имеешь ввиду НОРМАЛЬНЫЙ ?
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33660352
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В поля запроса как называются?
USER_NAME и TO_CHAR(DT
А вы как к ним обращаетесь?
К первому полю USER_NAME - вам и возвращает его содержимое, потому что оно так и называется.
Ко второму полю DT - вам ничего не возвращает, потому что поле называется TO_CHAR(DT.
Дайте название колонке исходя из требования Oracle на имена полей. и обратитесь по имени, которое придумаете (start_dt - вполне подходит).
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33661078
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cВ поля запроса как называются?
USER_NAME и TO_CHAR(DT
Ко второму полю DT - вам ничего не возвращает, потому что поле называется TO_CHAR(DT.
----------------------------------------
Артисты не приехали, приехали цыгане

Да нет. TO_CHAR - это функция oracle. Преобразует полученный данные в указанном формате, в частности 'DD.MM.YYYY HH24:MI'.
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33661137
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oraweb
Да нет. TO_CHAR - это функция oracle. Преобразует полученный данные в указанном формате, в частности 'DD.MM.YYYY HH24:MI'.
Я понимаю, что это такое. Какое имя у поля, которое выдает дату? Как к нему обращаться?
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33661277
oraweb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!c oraweb
Да нет. TO_CHAR - это функция oracle. Преобразует полученный данные в указанном формате, в частности 'DD.MM.YYYY HH24:MI'.
Я понимаю, что это такое. Какое имя у поля, которое выдает дату? Как к нему обращаться?
----------------------------------------
Артисты не приехали, приехали цыгане
Судя по запросу поле это dt
А конструкция TO_CHAR(dt, 'DD.MM.YYYY HH24:MI') говорит, что прежде чем вывести на экран, преобразуй пол. данн. в указ. формат.
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33661625
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы название поля было DT , то тредстартера не возникло бы проблемы.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33662246
koc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
koc
Гость
4m@t!c Прав, добавь алиас и будет тебе счастье
"select USER_NAME,to_char(dt, 'dd.mm.yyyy hh:mi') DT from Oracledb.Logoff where USER_NAME='".$user."'"
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33662999
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
koc4m@t!c Прав, добавь алиас и будет тебе счастье
"select USER_NAME,to_char(dt, 'dd.mm.yyyy hh:mi') DT from Oracledb.Logoff where USER_NAME='".$user."'"

ДЕЙСТВИТЕЛЬНО помогло!!!
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33663000
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4m@t!cНормальный алиас для поля пропишите и будет вам счастье.
----------------------------------------
Артисты не приехали, приехали цыгане

Я не имел понятия насчет алиаса... и потому со своей проблемой никуда не смог двинуться.
P.S.
Хотя труднопроизносимый у тебя ник, но буду помнить....! :)
...
Рейтинг: 0 / 0
(PHP+Oracle) Помогите найти ошибку в коде???
    #33663001
Фотография vista-rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С П А С И Б О !
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP+Oracle) Помогите найти ошибку в коде???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]