I have a script in php that writes to the mysql array:
$plu_arr = $_POST["plu"];
$il_arr = $_POST["il"];
$op_arr = $_POST["op"];
$row_index = 0;
$row_arr = array();
foreach($plu_arr as $plu_data){
if (isset($il_arr[$row_index]) and !empty($il_arr[$row_index]))
{
$row_arr[] = "('".$plu_data."','".$il_arr[$row_index]."','".$op_arr[$row_index]."')";
}
$row_index ;
}
$ins_qry = "INSERT INTO produkty_zamowienia (plu, nr_order, il, op) VALUES ".implode(", ", $row_arr);
$db_ins = $this->__db->execute($ins_qry);
$nr_order is the same for all plu in this order. Works correctly. Adds what you need to the database. I would like to do INSERT ON DUPLICATE KEY UPDATE on the same principle
I wrote something like this:
$ins_qry = "INSERT INTO produkty_zamowienia (FK_ID_produkt, plu, nr_order, il, op) VALUES ".implode(", ", $row_arr)." ON DUPLICATE KEY UPDATE ".implode(", ", $row_arr);
But this solution writes nothing to the database and stops at $ins_qry... Please help, how can I change the existing ones and add new entries to the database ... I would like $ins_qry to check if such plu nr_order already exists than it edits $il and $op and if not, insert this row.
CodePudding user response:
Try this:
$ins_qry = "INSERT INTO produkty_zamowienia (plu, nr_order, il, op) VALUES ".implode(", ", $row_arr)." ON DUPLICATE KEY UPDATE il = VALUES(il), op = VALUES(op)";