Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как из строки вырезать число 
V
    Опции темы
kulikoff
Дата 11.10.2009, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



Доброго времени суток!
Возникла такая проблема. В базе данных есть строковое поле, в котором хранится информация в виде 
Код

какой-то текст ЧИСЛО какой-то текст

Известно, что число встречается один раз, больше никаких цифр в тексте нет. Надо выделить это число из строки. Т.е., очистить содержимое строки от букв и пробелов, оставить одно число. Так понимаю, что это надо использовать регулярные выражения, но я в них не силен... Помогите, плиз!
PM MAIL WWW ICQ Skype   Вверх
Ипатьев
Дата 11.10.2009, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Я думаю, будет лучше описать реальную задачу.  что за база, что за данные, что за число. В каком запросе понадобилось его вырезать.
PM MAIL   Вверх
SoWa
Дата 11.10.2009, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Код

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Курить коменты можно

Это сообщение отредактировал(а) SoWa - 11.10.2009, 09:43


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
kulikoff
Дата 11.10.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



Значится, описываю реальную задачу, т.к., может, я совсем не туда думаю...

Есть у нас таблица, в которой есть стоимость. Поле стоимости текстовое и содержит информацию вида "от 1635 евро/чел", "от 13 дол" и т.д. Стоит задача сделать упорядочивание по цене, т.е., чтоб сначала выводились более дешевые туры в сторону возрастания цены. С валютой проблем нет, т.к. сначала будут выводиться те, у которых в цене указан дол, потом евро. А вот с абсолютным значением цены никак не могу справится, потому решил просто вырезать число, записать в отдельное поле базы и по нему уже упорядочивать. Понимаю, что немного гланды через попу удалять, но база досталась такая, какая есть, и надо искать выходы из существующей уже...
PM MAIL WWW ICQ Skype   Вверх
bars80080
Дата 11.10.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



а нельзя эту задачу решить правильно организуя БД и упорядочивая по полям?
PM MAIL WWW   Вверх
kulikoff
Дата 11.10.2009, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



просто база уже такая есть... Мне надо исходить из имеющегося... Или переформатировать надо, но всё равно надо решить эту проблему
PM MAIL WWW ICQ Skype   Вверх
kulikoff
Дата 14.10.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: нет
Всего: 1



Всё, решил задачу. Спасибо большое SoWa!!!
PM MAIL WWW ICQ Skype   Вверх
Nicklasos
Дата 14.10.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 3.12.2007
Где: Киев

Репутация: 1
Всего: 1



Такую задачу лучше делать через регулярные выражения.

Код

<?php
    $var = 'erer122.34343The';
    $float_value_of_var = floatval($var);
    echo $float_value_of_var;
?>


Такой вариант выводит "0"

Это сообщение отредактировал(а) Nicklasos - 14.10.2009, 22:06
PM MAIL   Вверх
brother79
Дата 30.10.2009, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 2
Всего: 6



Решение не указанно в форуме, вот нашёл ссылку:

http://www.mysql.ru/docs/man/Regexp.html

Я полагаю решение было такое.


--------------------
PM MAIL WWW   Вверх
nerezus
Дата 30.10.2009, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Такой вариант выводит "0"
 Ну да, ноль. Экспоненциальная запись же ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.