Вместо "." делаем ","

Тема в разделе "PHP", создана пользователем Otto, 11 мар 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Otto

    Otto

    Регистр.:
    12 май 2008
    Сообщения:
    483
    Симпатии:
    158
    Не знаю даже по какому запросу искать, искал, но ничего не нашел.
    Значит так:
    Есть у меня инет магазин, вот и с базы выводятся цены токов виде напр. "150.500", а мне надо что бы у меня выводилось бы так "150,500". т.е. что бы целая и сотая часть делились бы не точкой ".", а запятой ","
    Вроде, через какую нибудь функцию можно сделать это. :ah:
    спс.
     
  2. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.420
    В каком формате хранятся данные в базе? Какой тип поля в таблице и какая локаль установлена на сервере?
     
  3. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    776
    Симпатии:
    153
    Код:
    $цена = str_replace(".",",",$цена);
    Можно еще в базе заменить sql запросом
    Код:
    UPDATE ИМЯ_ТАБЛИЦЫ SET ИМЯ_ПОЛЯ = REPLACE(ИМЯ_ПОЛЯ, ‘строка для замены’, ‘чем заменяем’);
     
  4. Otto

    Otto

    Регистр.:
    12 май 2008
    Сообщения:
    483
    Симпатии:
    158
    >А кокую роль играет у меня локал или сервер?
    -Денверь, но сатй конечно будет на сервер

    >И кокую роль играет тип?
    -Тип поля "`order_total` decimal(15,5) NOT NULL default '0.00000',"

    Перебрал некотрый функции наверное чтото не так сделал, елси есть время дай сразу готовое решение пожалуйсто, иначе некоторые подсказывают кокую функцию надо мучать, но что то не получается :tcl:
     
  5. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.420
    В вашем случае проще всего будет использовать следующий код:
    PHP:
    //$q - вещественное число, полученное из базы
    str_replace("."","strval($q).'<br>');
     
  6. Otto

    Otto

    Регистр.:
    12 май 2008
    Сообщения:
    483
    Симпатии:
    158
    Что то не работает код токой у меня: :tcl:
    PHP:
    <?php
    //$q - вещественное число, полученное из базы 
    str_replace("."","strval($product_item_price).'<br>');
    str_replace("."","strval($product_final_price).'<br>');
    $pay_orders mysql_query("SELECT * FROM jos_vm_order_item WHERE order_id='$order_id'"); //Connect Table
        
    while($pay_orders_value mysql_fetch_array($pay_orders)){
                    
    $product_item_price $pay_orders_value["product_item_price"]; //Переменная Стоимость товара
                    
    $product_final_price $pay_orders_value["product_final_price"]; //Переменная Общая стоимость                
    echo "$product_item_price <br/>$product_final_price<br/>";
    }
    ?>
     
  7. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    776
    Симпатии:
    153
    []T[]
    :ai: я же привел вам рабочий код!

    Код:
    $product_item_price = str_replace(".",",",$product_item_price);
     
    DryTt и Otto нравится это.
  8. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    string number_format ( float number, int decimals, string dec_point, string thousands_sep )

    number_format() возвращает отформатированное число number. Функция принимает один, два или четыре аргумента (не три:(
    Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой (",") между группами цифр по 3.
    Если переданы два аргумента, number будет отформатирован с decimals знаками после точки (".") и с запятой (",") между группами цифр по 3.
    Если переданы все четыре аргумента, number будет отформатирован с decimals знаками после точки и с разделитилем между группами цифр по 3, при этом в качестве десятичной точки будет использован dec_point, а в качестве разделителя групп - thousands_sep.

    Добавлено через 58 секунд
    Зачем применять строковую функцию к числу, если для него есть специальная функция number_format?
     
  9. Otto

    Otto

    Регистр.:
    12 май 2008
    Сообщения:
    483
    Симпатии:
    158
    saen спс. коенчно, но я вот сделал так
    Код:
    $product_item_price = str_replace(".",",",$product_item_price);
    Вроде всё работает, и чем он не лучще твоего варианта, и чем твой лучще, немного не понял твой пост, о обяснении, для меня главное что бы работало, а оно и рабоатет, или у меня могут быть проблеммы из-зи чего нибудь в будушем ?
     
  10. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Если значение берется из БД, оно конечно будет представлено в виде строки и твоя функция будет работать, но это как ни крути напильник.
     
    DryTt нравится это.
Статус темы:
Закрыта.