Alkinoy
Начинающий
Строковые функции - непостоянная ошибка
Имею базу. в базе забиты коды ТНВЭД. Но. некоторые коды забиты 8 и 9 символьные, а должны быть 10. надо обработать (дополнить до 10 символов) или оставить таким же (если в коде ошибка и не понятно, что там за код) и вставить в новую таблицу. Кроме того, в новой таблице в одно поле надо вставить первые 4 символа из кода. вот код:
таблица TNVED - список всех возможных кодов.
Проблема - некоторые кода остаются 9-и символьными и в дополнительном поле вместо 4 символов - вырезается 3! Но как такое может быть????? 4 символа вырезаются этим substr($row2["ТМВЕД"],0,4) , а в поле $row2["ТМВЕД"] - 9 символов!
Далее, беру этот код запускаю на исходных записях, именно на тех, на которых получается такая фигня - все прекрасно!
Моя в ауте....
что делать, кто посоветует.
PHP 5.1 модуль, Apache 2.2, win 2k3 server sp1, mssql2005 sp2
-~{}~ 14.06.07 10:29:
вопрос снят, моя ошибка, функции работают правильно.
Имею базу. в базе забиты коды ТНВЭД. Но. некоторые коды забиты 8 и 9 символьные, а должны быть 10. надо обработать (дополнить до 10 символов) или оставить таким же (если в коде ошибка и не понятно, что там за код) и вставить в новую таблицу. Кроме того, в новой таблице в одно поле надо вставить первые 4 символа из кода. вот код:
PHP:
$row2["ТМВЕД"] = $row2["ТМВЕД"].'';
$row2["ТМВЕД"] = trim($row2["ТМВЕД"]);
if(8 == strlen($row2["ТМВЕД"]))
$row2["ТМВЕД"] = "0".$row2["ТМВЕД"]."0";
elseif(9 == strlen($row2["ТМВЕД"]))
{
$sub = '0'.$row2["ТМВЕД"];
$q = "select * from TNVED where code = '".$sub."'";
$r1 = mssql_query($q);
if (1==mssql_num_rows($r1))
{
$row2["ТМВЕД"] = '0'.$row2["ТМВЕД"];
}
else
{
$sub = $row2["ТМВЕД"].'0';
$q = "select * from TNVED where code = '".$sub."'";
$r1 = mssql_query($q);
if (1==mssql_num_rows($r1))
{
$row2["ТМВЕД"] = $row2["ТМВЕД"].'0';
}
}
}
//вставляем строки декларации
$query = "insert into t (declr_id, tnved, tnved_group, mass, cost, tovar)
values (".$id['id'].", ".$row2["ТМВЕД"].", ".substr($row2["ТМВЕД"],0,4).",".$row2["вес кг"].", ".$row2["стоимость грн"].", '".$row2["товар"]."')";
Проблема - некоторые кода остаются 9-и символьными и в дополнительном поле вместо 4 символов - вырезается 3! Но как такое может быть????? 4 символа вырезаются этим substr($row2["ТМВЕД"],0,4) , а в поле $row2["ТМВЕД"] - 9 символов!
Далее, беру этот код запускаю на исходных записях, именно на тех, на которых получается такая фигня - все прекрасно!
Моя в ауте....
что делать, кто посоветует.
PHP 5.1 модуль, Apache 2.2, win 2k3 server sp1, mssql2005 sp2
-~{}~ 14.06.07 10:29:
вопрос снят, моя ошибка, функции работают правильно.