Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Изменение чисел при передаче в БД (https://javascript.ru/forum/server/36082-izmenenie-chisel-pri-peredache-v-bd.html)

FoxTrix 03.03.2013 20:20

Изменение чисел при передаче в БД
 
Здравствуйте.
Возникла небольшая проблема:
Есть форма, в которой input типа hidden, у него в value содержится трехзначное число.
При отправке формы, если первый/два первых символа был(и) ноль, то они обрезаются.
Как это можно исправить?(нужно чтобы в базу приходило именно 001(например)).
Тип данных в БД varchar

squall88 04.03.2013 01:57

Хотелось бы увидеть код. По идее если вы в коде не приводите значение к int, то в бд должно писаться как есть, то есть 001 как строка.

danik.js 04.03.2013 02:41

Цитата:

Сообщение от FoxTrix
При отправке формы, если первый/два первых символа был(и) ноль, то они обрезаются.

Это не так.

FoxTrix 04.03.2013 20:00

squall88,
<form name=\"post\" method=\"post\">
<input type=\"hidden\" name=\"id\" id=\"id".$i."\">
<input type=\"hidden\" name=\"last\" id=\"h".$i."\">
<input type=\"submit\" name=\"sbt\" value=\"Отправить\">
</form>

function update()
{
	if(isset($_POST['sbt']))
	{
		$query = "UPDATE table SET last_read = {$_POST["last"]} WHERE id = {$_POST["id"]}";
		mysql_query($query);
	}
}


danik.js,
должно быть может и не так, а у меня так)

danik.js 04.03.2013 20:44

Да ничего не так. При отправке формы никакие нули не обрезаются.
Они у вас обрезаются либо еще при генерации страницы, так что в форме уже без ведущих нулей, либо в скрипте-обработчике формы, принимающем post-запрос.

FoxTrix 05.03.2013 19:28

danik.js,
в форме ещё с нулями, проверял alert'ами

danik.js 05.03.2013 19:29

Что выдает var_dump($_POST) ?

FoxTrix 05.03.2013 21:31

danik.js,
array(3) { ["id"]=> string(1) "1" ["last"]=> string(3) "082" ["sbt"]=> string(18) "Отправить" }

squall88 05.03.2013 22:35

У вас строка приводится к int. Попробуйте так
$query = "UPDATE table SET last_read = '{$_POST["last"]}' WHERE id = {$_POST["id"]}";

FoxTrix 05.03.2013 22:44

squall88,
Спасибо, помогло)


Часовой пояс GMT +3, время: 06:15.