[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Откуда ошибка в простом примере
maximka787
Привет всем. Подскажете из-за чего такое может быть?
echo '<br>'.$_SESSION['RefINN'];  //тут все верно
echo '<br>'.intval($_SESSION['RefINN']); // ВОТ тут ошибка выводит 2147483647
echo '<br>'.$_SESSION['RefKPP']; //тут все верно
echo '<br>'.intval($_SESSION['RefKPP']); //тут все верно ТУТ НЕТ ОШИБКИ
Вывод:
111111111111
2147483647 //откуда это значение
222222222
222222222
В базу заносится всегда с ошибкой
$queryINS = "insert into table values(
'"
.htmlspecialchars($_SESSION['RefName'])."',
'"
.$_SESSION['RefINN']."',
'"
.$_SESSION['RefKPP']."'
)"
;




Спустя 12 минут, 14 секунд (22.02.2011 - 13:15) T1grOK написал(а):
Задайте себе вопрос, а куда конкретно вы добавляете данные??? Понятное дело в таблицу table, но в какие поля???

$queryINS = "insert into table (kolonka1, kolonka2, kolonka3)
values('"
.htmlspecialchars($_SESSION['RefName'])."',
'"
.$_SESSION['RefINN']."',
'"
.$_SESSION['RefKPP']."'
)"
;

Спустя 5 минут, 56 секунд (22.02.2011 - 13:21) maximka787 написал(а):
T1grOK, ошибка видна и до добавления в таблицу. Таблицу можно не смотреть, я просто пример показал что два абсолютно одинаковых типа данных вводятся по разному. В таблице поле RefINN и RefKPP имеют значение int 12. Только первое вводится нормально, а второе непонятно откуда взявшимися цифрами.

Спустя 14 минут, 44 секунды (22.02.2011 - 13:36) T1grOK написал(а):
А с чего вы взяли что ошибка? intval может возвращать максимальное значение 2147483647, то есть как в вашем случае.

Спустя 3 минуты, 52 секунды (22.02.2011 - 13:40) ZSH написал(а):
floatval($_SESSION['RefINN']);
//или
(float)$_SESSION['RefINN'];

Спустя 48 минут, 4 секунды (22.02.2011 - 14:28) linker написал(а):
echo '<br>'.$_SESSION['RefINN'];
echo '<br>'.(double)$_SESSION['RefINN'];
echo '<br>'.$_SESSION['RefKPP'];
echo '<br>'.(integer)$_SESSION['RefKPP'];

Спустя 38 минут, 27 секунд (22.02.2011 - 15:06) maximka787 написал(а):
Да все верно, мужики, а почему если вставляю просто в базу без фильтров, например:
...'".$_SESSION['RefINN']."',
то все значиния в таблице с полями int имеют цифру 2147483647. Я читал что это максимально превышенное значение (когда именно эта цифра вылезает)
Может нельзя использовать 50 сессионных переменных)...

Спустя 7 минут, 59 секунд (22.02.2011 - 15:14) linker написал(а):
Целочисленное INTEGER может быть без знака и со знаком, т.е. +/- или положительное/отрицательное значение. Без знака, максимальное целочисленное значение ограничено от 0 до 4294967295. Со знаком, диапазон возможных значений целого числа от -2147483648 до 2147483647.
Это основы господа, без этого в программировании делать вообще нефиг.

Спустя 17 минут, 6 секунд (22.02.2011 - 15:32) maximka787 написал(а):
linker я знаю, что ты разбираешься в этом всем). Мне надо только понять почему $var = 100 пишется нормально в базу, а $_SESSION[] и (integer)$_SESSION[] дают это огромное значение.
$test = 111;
.....

'".$_SESSION['city']."', //тут текст
'".(integer)$_SESSION['ifnc']."', //2147483647
'".$test."', //111
'".$_SESSION['num']."' //2147483647 ,
.....

Спустя 15 минут, 53 секунды (22.02.2011 - 15:47) ZSH написал(а):
потомучто в $_SESSION['ifnc'] число больше 2147483647

Спустя 2 минуты, 31 секунда (22.02.2011 - 15:50) maximka787 написал(а):
Цитата (ZSH @ 22.02.2011 - 12:47)
потомучто в $_SESSION['ifnc'] число больше 2147483647

А что нужно сделать? у меня 50 сессионных переменных, тк форма заявки на 50 полей. и в базу данных сохраняется число 2147483647, если вставлять так: '".(integer)$_SESSION['ifnc']."'

Спустя 15 минут, 13 секунд (22.02.2011 - 16:05) linker написал(а):
Я же написал:
(double)$_SESSION['ifnc']

Спустя 1 минута, 40 секунд (22.02.2011 - 16:07) maximka787 написал(а):
Цитата (linker @ 22.02.2011 - 13:05)
Я же написал:
(double)$_SESSION['ifnc']

Да вот так сохраняется. Благодарю.

Спустя 1 минута, 57 секунд (22.02.2011 - 16:09) ZSH написал(а):
обрабатывай (double)$_SESSION['RefINN'] или (float)$_SESSION['RefINN']

и в базе замени тип данных столбца с INT на другой

Типы данных столбцов


_____________
..Работает - не трогай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.