За последние 24 часа нас посетили 16602 программиста и 1650 роботов. Сейчас ищут 1511 программистов ...

PHP+DBASE

Тема в разделе "PHP и базы данных", создана пользователем mastercz, 26 сен 2008.

  1. mastercz

    mastercz Активный пользователь

    С нами с:
    14 янв 2008
    Сообщения:
    10
    Симпатии:
    0
    Добрый день.
    Столкнулся со следующей проблемой для dbase - не могу правильно прочитать поле numeric.
    почему-то не возвращает значение дробной части ... а возвращает только целую часть.
    Подскажите, можно ли с этим справиться?
    Заранее спасибо за ответ.
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Можно, пожалуйста.
     
  3. mastercz

    mastercz Активный пользователь

    С нами с:
    14 янв 2008
    Сообщения:
    10
    Симпатии:
    0
    а как ?
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    А как стать экстрасэнсом?
     
  5. mastercz

    mastercz Активный пользователь

    С нами с:
    14 янв 2008
    Сообщения:
    10
    Симпатии:
    0
    А что здесь непонятного ...
    Берем обыкновенный DBF (III) файл.
    Открываем его

    $InHandle=dbase_open("test.dbf", 0)

    В нем есть поле numeric (ну скажем со значением 23.23)

    В результате когда читаем строку ...

    print_r (dbase_get_record_with_names($InHandle, 1));
    exit();

    то поучаем в элементе массива соответствующем полю numeric значение (столбец SUMA) 23.23 :

    Array ( [XZ] => 702 [DATE] => 20080123 [SUMA] => 23 [deleted] => 0 )
    ...
    т. е. без дробной части.

    PHP 5.2 ; Windows XP
     
  6. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    $info = dbase_get_header_info();
    echo $info['precision'];
     
  7. mastercz

    mastercz Активный пользователь

    С нами с:
    14 янв 2008
    Сообщения:
    10
    Симпатии:
    0
    Разобрался ...
    Может кто еще сталкнеться, чтобы не тратить рабочее время.
    Если стоит русская локаль в Windows, то разделителем поля нумерик являеться ",". или установите LC_NUMERIC в 'C' или наоборот поставьте LC_ALL в 'C' а необходимые для работы переменные в 'Russian_Russia.1251'.