@paulvales

Откуда посторонние записи в бд codeigniter?

Приветствую! сделал небольшое веб-приложение на CI, для учета товаров( добавить товар, купили товар, редактировать товар).
Пару раз в день появляются левые записи в БД о покупках, например:
купили 1 товар с определенным ИД и сразу же записываются еще 1-2 покупки с этим же ИД и с хаотичным количеством(20,12,4,3 и т.п.).
Никак не могу отследить из-за чего это происходит т.к. ошибки появляются с разными товарами, а может их и не быть. Делал логирование( при записи в БД запись в файл) - эти ошибочные записи почему-то не логируются. Голову уже сломал
функция которая отвечает за покупку:
function kupleno(){
//это для логов
include($_SERVER['DOCUMENT_ROOT'].'/class.php');
Logger::$PATH = 'logs';

    $array = $this->input->post("ii");
    $this->load->model('News_model');
    $data["time"] = date("Y-m-d H:i:s");
 //перебор отправленных товаров 
foreach($array as $ar){
    $data["code"] = $ar['cod'];
    $data["kol"] = $ar['kol'];
    $data["ver"] = $ar['ver'];
    $kol = $ar['kol'];
    //отнимает от количества в списке продуктов
    $this->db->where('code',$data["code"]);
    $this->db->set('kol', 'kol - '.(int)$kol, FALSE);
    $this->db->set('kup', $kol);
    $this->db->update('prod');
    //получаем всю инфу по товару
    $this->db->where('code',$data["code"]);
    $q = $this->db->get('prod');
    $arr = $q->row_array();
    //вычисляем прибыль
$getprice = $this->getprice($arr["price"],$arr["kurs"],$arr["sale"],$arr['proc']);
$prib = $getprice["summ"]-$getprice["price"];
if(!empty($arr["sale"])){$prib = $getprice["summ"]-$getprice["saletg"];}
    $data["pribil"] =(ceil($prib/10)*10)*$kol;
    //проверяем был ли куплен товар уже сегодня, в магазине или с доставкой
    $dt = date("Y-m-d");
    $this->db->where('code',$data["code"]);
    $this->db->where('ver',$data["ver"]);
    $this->db->where("DATE_FORMAT(time,'%Y-%m-%d') = '$dt'");
    $q = $this->db->get('kupleno');
      //если да то обновляем
    if($q->num_rows() > 0){
        $this->db->where('code',$data["code"]);
        $this->db->set('kol', 'kol + '.(int)$kol, FALSE);
        $this->db->set('pribil', 'pribil + '.(int)$data["pribil"], FALSE);
        $this->db->set('time', date("Y-m-d H:i:s"));
        $this->db->update('kupleno');  
         Logger::getLogger(date("d-m-Y"))->log('ipdate id - '.$ar['cod'].'/'.$ar['kol'].'/'.$ar['ver']);
    }else{
        Logger::getLogger(date("d-m-Y"))->log('kuplen id - '.$ar['cod'].'/'.$ar['kol'].'/'.$ar['ver']);
     $this->News_model->kupleno($data);    
    }     
}
    print "Товар продан";
}
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы