Ben oldukça basit bir ekleme bildirimde
<...>
if (!empty($attributes)) {
$sql = 'INSERT INTO `part_attrs` (`part_id`, `attr`, `type`, `list_order`) VALUES (?, ?, ?, ?)';
foreach($attributes as $key => $attribute) {
$this->db->query($sql, array($partid, $attribute[0], $attribute[1], $key));
$attrid = $this->db->insert_id();
echo $attrid.'<br />';
if (strlen($attribute[2]) > 0) {
$values = explode(',', $attribute[2]);
$sql = 'INSERT INTO `attr_values` (`attr_id`, `field_values`) VALUES (?, ?)';
foreach ($values as $value) {
$this->db->query($sql, array($attrid, trim($value)));
}
}
}
}
<...>
Tek şey, sadece bir ya da iki satır eklenir ediliyor olmasıdır. Ben yankı hat ben herhangi bir hata almıyorum çünkü her ekleme dönen satır id görmek için koymak. Örneğin ben üç öğe eklerseniz 18 id sonraki ve beklenen kimliği yüzden bu satır eklenir alır ve sonra gerisi yok olduğu yerlerde, 18, 124, 128. Gibi bir şey dönecektir. Herhangi bir fikir yanlış olabilir?