У меня есть значения, которые я извлекаю из своей базы данных OpenCart (mysql), я предоставляю их форме, которую пользователь может затем отправить и использовать для обновления своей таблицы продуктов. Однако, когда я запускаю приведенный ниже код, 1) ошибок не возникает, и 2) когда я проверяю базу данных mysql, я вижу столбец, но он остается 0 вместо значения, которое я хочу (например, 1, 4, 5 и т. Д.).OpenCart - попытка обновить таблицу продуктов с лицевой стороны
Модель:
public function unit_id_update() {
$product_id = $this->db->getLastId();
$this->db->query("UPDATE " . DB_PREFIX . "product SET unit_class_id = " . $this->db->$unit_type_id . " WHERE product_id = " . (int)$product_id);
}
public function unit_id_request() {
$w_data = $this->db->query("SELECT weight_class_id FROM ". DB_PREFIX ." weight_class_description");
if (!$w_data) {
die(mysql_error());
}
else {
return $w_data;
}
}
Контроллер:
$this->load->model('catalog/product'); //where functions are located
$another_var = $this->model_catalog_product->unit_id_request();
$this->data['weight_var'] = $another_var;
$this->data['kg'] = $another_var->rows[0]['weight_class_id'];
$this->data['g'] = $another_var->rows[1]['weight_class_id'];
$this->data['lb'] = $another_var->rows[2]['weight_class_id'];
$this->data['oz'] = $another_var->rows[3]['weight_class_id'];
if (isset($this->request->post['unit_type_id'])) {
$this->data['unit_type_id'] = $this->request->post['unit_type_id'];
}
else {
$this->data['unit_type_id'] = '';
}
Вид:
<tr>
<td><?php echo "Unit Type"; ?></td></tr>
<td><select name="unit_type_id">
<optgroup label="<?php echo "Weight"; ?>">
<option value="<?php echo $lb; ?>" >lb</option>
<option value="<?php echo $oz; ?>">oz</option>
<option value="<?php echo $kg; ?>">kg</option>
<option value="<?php echo $g; ?>">g</option>
</optgroup>
</select></td>
</tr>
Я добавил оба параметра в функцию, и он по-прежнему не вносит никаких изменений в базу данных. Я также попробовал 'INSERT' вместо' UPDATE'. – Kris
И можете ли вы отлаживать, что передаются значения методу модели? 'UPDATE' - это то, что вы хотите использовать. – shadyyx
Я даю вам ответ, потому что я действительно забыл передать параметры '$ product_id' и' $ unit_type_id' моей функции. Я считаю, что ваш ответ правильный, однако я думаю, что что-то пошло не так, потому что это был xml-файл, к которому я пытался добавить расширение. Я пошел в каталог/model ['account/customerpartner'] ', который была загружена на странице« каталог/контроллер/['account/addproduct'] ']. И добавил несколько строк для моих функций базы данных «INSERT» и «UPDATE», которые были написаны аналогично вышеуказанной функции. – Kris