Автор Тема: строка -> число  (Прочитано 4885 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Timofey

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 108
  • +0/-0
  • 0
    • Просмотр профиля
строка -> число
« : 30 Октября 2003, 12:22:21 »
как из строки сделать число?

т.е. есть параметр переданный из формы, там число,но после разбора офрмы получается строка, вот эту строку и надо перевести в нормально число, т.к. нуна сделать запрос к базе,там это поле int

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
строка -> число
« Ответ #1 : 30 Октября 2003, 12:49:01 »
в perl нет способа явного задания числа или строки
есть лишь тип scalar
в твоем варианте достаточно убедиться что переданный параметр число. для этого достаточно прибавить к нему нулик
0 OK, 0:1

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
строка -> число
« Ответ #2 : 31 Октября 2003, 13:06:56 »
2ondr
Имхо, не очень хороший выход из ситуации. Насколько я понимаю, любая строка, начинающаяся не с цифры в математических выражениях превращается в 0. Так что, прибавив нолик, не узнаешь, было ли это число или нет.

Может, простейший регэксп?
 BlueJacking среди нас

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
строка -> число
« Ответ #3 : 31 Октября 2003, 13:23:27 »
metton
Если ждешь именно число и должно прийти число, то зачем нужно знать было ли это строкой? Если уж горит, то проверь регэкспом или ещё чем нибудь.
Все зависит от конкретного случая.
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
строка -> число
« Ответ #4 : 31 Октября 2003, 13:56:55 »
Timofey
IMHO проблем нет когда ты будешь в запросах использовать что-то типа:

.... WHERE id = \'$form_id\' ....

где $form_id - переменная переданная из формы... даже если $form_id будет иметь не числовое значение, запрос просто ничего не вернет и все, а если числовое, то он выберет именно, то что нужно... а регами я бы проверял отсутствие пробелов и одинарных кавычек, не более того... строка или число в скаляре не указывается, но если вставляешь число, даже если оно вида:

$i = "1";

т.е. вроде как текст, но в запросе поймет его как $i = 1; по крайней мере у меня понимает...

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
строка -> число
« Ответ #5 : 31 Октября 2003, 18:51:57 »
2ondr
Ситуация: юзер хочет ввести 23, а вместо этого нечаянно вводит 2w (не попадаети он по клавишам, ну что с ним поделаешь? - юзер :D ), а вводимое число, например, идентификатор стираемой записи. Вот и получится что он сотрёт запись с идентификатором 2 вместо 23, что не есть хорошо. Пример, конечно надуман, но выводы, думаю, напрашиваются сами собой. ЛУЧШЕ ТАК НЕ ДЕЛАТЬ! :D

2Phoinix
При выборке, конечно это во многих случаях не критично, но воть если опять же данные вставляются в базу. В этом случае там будет опять же нолик, и можно этого не заметить.
 BlueJacking среди нас

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
строка -> число
« Ответ #6 : 31 Октября 2003, 19:41:30 »
metton
ты забыл добавить ИМХО
0 OK, 0:1

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
строка -> число
« Ответ #7 : 31 Октября 2003, 21:41:56 »
2ondr
То есть ты не согласен со мной? Твои аргументы...
 BlueJacking среди нас

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
строка -> число
« Ответ #8 : 01 Ноября 2003, 10:11:25 »
metton
Цитировать
Timofey
нуна сделать запрос к базе,там это поле int


вопрос - как сделать запрос, а не вставить данные в базу.

Оффлайн metton

  • access granted
  • Старожил
  • ****
  • Сообщений: 320
  • +0/-0
  • 2
    • Просмотр профиля
    • http://bluejack.ru/
строка -> число
« Ответ #9 : 01 Ноября 2003, 19:45:33 »
2Phoinix
Ок. Как тебе запрос на удаление?
 BlueJacking среди нас

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
строка -> число
« Ответ #10 : 02 Ноября 2003, 21:09:12 »
metton
IMHO начался спор ни о чем...
хуже не станет если запрос на удаление или изменение не пройдет из-за неправильно переданного параметра...

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28