Строковые функции - непостоянная ошибка

  • Автор темы Автор темы Alkinoy
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Alkinoy

Начинающий
Строковые функции - непостоянная ошибка

Имею базу. в базе забиты коды ТНВЭД. Но. некоторые коды забиты 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["товар"]."')";
таблица 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:

вопрос снят, моя ошибка, функции работают правильно.
 
Alkinoy
Могу я объяснить.
Кроме тебя, никто из читавших твой вопрос, ни на секунду не усомнился в том, что ошибка именно твоя, а не в функциях пхп.
Поскольку функциями пользуются сотни тысяч людей, и ни у кого ошибок нет.

Рекомендую и тебе думать так же.
Быстрее будешь находить свои ошибки
 
Автор оригинала: *****
Alkinoy
Могу я объяснить.
Кроме тебя, никто из читавших твой вопрос, ни на секунду не усомнился в том, что ошибка именно твоя
а я этого изначально не отрицал. кроме того, я ее таки нашел. о чем и написал.
а сообщение Garretа напоминает мне этакое высокопарное фырканье. Если Пан Garret хочет показать свою крутость и длину растопыренных пальцев - пусть объяснит, где же я ошибался?
 
Я тебе уже объяснил, где ты ошибался.
заявления про "ошибки в строковых функциях пхп" ничего, кроме насмешливого фырканья, вызвать не могут.
прежде, чем на других гавкать, сначала посмотрись в зеркало.
Сказал глупость - обижайся только на себя.
НАДЕЮСЬ, тема исчерпана.
 
я НЕ ПИСАЛ про ошибки В строковых функциях. я писал, что при ИСПОЛЬЗОВАНИИ строковых функций ВОЗНИКАЮТ ошибки. К тому же тыкать пан ***** (aka *****) незнакомым людям так и не разучился.
 
вопрос снят, моя ошибка, функции работают правильно.
это кто писал? (вопрос риторический. просто для того, чтобы показать здесь склочную натуру автора)

если незнакомым людям не нравится мое обращение - незнакомые люди вольны со мной не общаться
 
русские ключи- гламурненько!
уже б и в базе русские имена полей для полного кайфа!
 
svetasmirnova
Имхо эти фичи давайте оставим порту MySQL под рус-ос.

А если серьезно: Даже если так можно делать, ты действительно думаешь, что так делать стоит? Только честно.

-~{}~ 18.06.07 15:56:

(спрашивая сам себя) хотя причем тут MySQL ? :)
 
>Имхо эти фичи давайте оставим порту MySQL под рус-ос.
Вообще-то MySQL поддерживает названия таблиц и полей в национальной кодировке

>А если серьезно: Даже если так можно делать, ты действительно думаешь, что так делать стоит? Только честно.
Что стоит делать? Ключи массивов? Честно говоря никогда не задумывалась к какой они кодировке, так как руками их обычно не набираю :) Проблем не вижу.
 
напоминаю, этот форум "дети" читают ...
 
svetasmirnova
А кто сказал что там что то такое? Просто прикольнуло... Ошибки нет, но и хорошего мало.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху