У меня есть вопрос о моем коде, который, на мой взгляд, недостаточно быстр. Я заметил, что скорость всего процесса стала ниже после внедрения этого кода:
if (!empty($data['price1']) && !empty($data['price2']) && !empty($data['price3']) && !empty($data['price4']) && !empty($data['price5']) && !empty($data['price6']) && !empty($data['price7']) && !empty($data['price8']) && !empty($data['price9']) && !empty($data['price10'])) {
$query=$this->db->query("SELECT product_id from ".DB_PREFIX."product WHERE model='".$data['model']."' ");
if($query->num_rows){
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price1'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='2' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price2'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='3' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price3'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='4' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price4'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='5' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price5'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='6' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price6'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='7' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price7'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='8' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price8'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='9' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price9'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='10' ");
$this->db->query("UPDATE ".DB_PREFIX."product_prices SET price='".$this->db->escape($data['price10'])."' WHERE product_id='".$query->row['product_id']."' and customer_group_id='11' ");
}
else
{
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price1']."',customer_group_id='2'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price2']."',customer_group_id='3'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price3']."',customer_group_id='4'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price4']."',customer_group_id='5'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price5']."',customer_group_id='6'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price6']."',customer_group_id='7'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price7']."',customer_group_id='8'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price8']."',customer_group_id='9'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price9']."',customer_group_id='10'");
$this->db->query("INSERT INTO ".DB_PREFIX."product_prices SET product_id='".$product_id."',price='".$data['price10']."',customer_group_id='11'");
}
}
Я не профессионал в php кодировании, пытаюсь сделать все возможное, просто я думаю, что, возможно, есть более быстрый способ обновить выбранные таблицы или, если они пустые, вставить новые значения. Пытался сделать по-другому, например, проверять все данные [price1], [price2] и т. Д. c, но это было намного медленнее, поэтому попытался таким образом - процесс все еще медленный.