PHP & EXCEL

Mr.Arsi

Новичок
Исчезают нули при Импорте к примеру
Screenshot_1.png

Делаю загрузку получаю Screenshot_4.png и конечно сам код

PHP:
    public function create_tmp_table()
    {
        $this->db->query('DROP TABLE IF EXISTS '.$this->tmp_tbl_name);
            $this->db->query('CREATE TABLE '.$this->tmp_tbl_name.' (
            id int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
            manufacturer int(10) NOT NULL,
            model varchar(32) NOT NULL,
            descr tinytext DEFAULT NULL,
            in_stock tinytext NOT NULL,
            price float(8, 2) UNSIGNED DEFAULT NULL,
            price_new float(8, 2) UNSIGNED NOT NULL DEFAULT "0.00",
            category int(10) NOT NULL,
            PRIMARY KEY (id)
              )
              ENGINE = INNODB
              AUTO_INCREMENT = 1
              CHARACTER SET utf8
              COLLATE utf8_general_ci');
    }

    /**
     * Наполнение вр. таблицы
     * @param array $data
     */
    public function fill_tmp_table(array $data)
    {
        $this->db->query(sprintf('INSERT INTO %s SET
        `manufacturer`=%d,
        `model`="%s",
        `descr`="%s",
        `in_stock`=%d,
        `price`=%f,
        `price_new`=`price`,
        `category`="%s"',
            $this->tmp_tbl_name,
            $this->db->escape($data['manufacturer']),
            $data['model'] =  strtoupper(preg_replace('/[^a-zA-Zа-яА-Я0-9_]/u', '', $this->db->escape($data['model']))),
            $this->db->escape($data['descr']),
            $this->db->escape($data['in_stock']),
            $this->db->escape($data['price']),
            $this->db->escape($data['category'])
        ));
    }
В строке где model у меня стоит регулярка как мне изменить тип значений на текстовый или ваши варианты господа ?

В интернете я вычитал что можно поступить так
Пример

PHP:
$objnewPHPExcel->getActiveSheet()->getCell('A8')->setValueExplicit('', PHPExcel_Cell_DataType::TYPE_STRING)
но у меня не получается применить такое (
 

WMix

герр M:)ller
Партнер клуба
В экселе все номера преобразуются в int, нужно сказать что это не номер, вписав в начало апостроф

'01234
 

WMix

герр M:)ller
Партнер клуба
Я плохо прочел, извени, тебе в базу писать же надо, мы про какое из полей?
 

WMix

герр M:)ller
Партнер клуба
PHP:
echo strtoupper(preg_replace('/[^\w\d_]/u', '', '00012345'));
 
Сверху