Вход • Регистрация

сравнение текстовых значений

  • 29 ноября 2015 г. , редакция: 29 ноября 2015 г.
  • Здравствуйте.
    Пытаюсь в личной странице добавить к строкам истории заказа товара информацию. Выводить ее нужно в зависимости от статуса заказа. Но не работает у меня такое сравнение

    $ord=$order['status_name']; // значение получаю - ниже даже вывожу для самопроверки
    if (!$ord=="Завершено ") //Завершено - это название статуса, у меня соответствует действию ВЫПОЛНЕНИЕ
    {

    echo 'Для зачета оплаты не оплаченного товара необходимо пополнить баланс ';
    }

    else
    { echo $ord.', не требует оплаты</td>';
    }

    А еще вопрос по сравнению значений баланса и суммы заказа - Сумма заказа как и цена выводится в формате с пробелом 3-м разрядом - например: 7 780 руб.
    Баланс, например равен 100 руб. Если я пытаюсь сделать любое арифметическое действие с ними, например:

    $doplata=$result['balance']["summ"]- $order['summ'];

    то получаю значение 100-7=93
    т.е. от суммы заказа 7 780 в вычислении участвует только первая 7, а остальные 780 куда-то пропадают.
    в форумах искал, ничего не нашел.
    Спасибо , если подскажете, где почитать или где это уже обсуждалось, или просто поправите ошибку моего кода ( не так наверное сравниваю переменные)

    • 29 ноября 2015 г.
    • Цитата

      if (!$ord=="Завершено ") //Завершено - это название статуса, у меня соответствует действию ВЫПОЛНЕНИЕ
      {
      echo 'Для зачета оплаты не оплаченного товара необходимо пополнить баланс ';
      }
      else
      {
      echo $ord.', не требует оплаты</td>';
      }

      Код

      if ($ord != "Завершено")
      {
      echo 'Для зачета оплаты не оплаченного товара необходимо пополнить баланс ';
      }
      else
      {
      echo $ord.', не требует оплаты</td>';
      }

      Цитата

      А еще вопрос по сравнению значений баланса и суммы заказа - Сумма заказа как и цена выводится в формате с пробелом 3-м разрядом - например: 7 780 руб.
      Баланс, например равен 100 руб. Если я пытаюсь сделать любое арифметическое действие с ними, например:

      $doplata=$result['balance']["summ"]- $order['summ'];

      то получаю значение 100-7=93
      т.е. от суммы заказа 7 780 в вычислении участвует только первая 7, а остальные 780 куда-то пропадают.
      в форумах искал, ничего не нашел.

      Код

      $doplata =str_replace('/\s/','',$result['balance']["summ"]) - str_replace('/\s/','',$order["summ"]);

      Да прибудет с тобой сила PHP
      • 30 ноября 2015 г.
      • Большое спасибо, оба совета помогли. Пробел в сумме заказа убрал:
        $doplata =str_replace("&nbsp;","",$order['summ']) - $result['balance']["summ"];
  • 29 ноября 2015 г.
  • Цитата
    Сумма заказа как и цена выводится в формате с пробелом 3-м разрядом - например: 7 780 руб.

    Уберите пробел, как разделитель тысяч, в настройках магазина и всё.
    Или работайте с ценой в модельке, до того, как она обработается функцией $this->diafan->_shop->price_format(),
    Ну или как говорит Виталий, перед работой с отформатированной ценой очищайте из неё пробелы и все остальное лишнее, кроме цифр.
    Т.к. str_to_int в РНР работает для строки "7 420" именно как 7, а не 7420.
    • 29 ноября 2015 г.
    • Цитата
      Уберите пробел, как разделитель тысяч, в настройках магазина и всё.

      Тогда пропадет "красотень" во многих местах ...

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум