$visitId = dbConn::querySingle("SELECT visitId\n FROM :prefix:visit AS v\n INNER JOIN :prefix:patient AS p\n ON p.patientId = v.patient\n INNER JOIN :prefix:user AS u\n ON u.userId = v.user\n WHERE userId = :0 AND patientId = :1", $_POST['userid'], $p['patientId']); // check if visit relation already exists if (dbConn::querySingle("SELECT COUNT(*) FROM :prefix:visit WHERE user = :0 AND patient = :1", $_POST['userid'], $p['patientId']) < 1) { // if not, insert new row into database table $t->addStatement("INSERT INTO :prefix:visit (user, patient, relation, description, scent) VALUES (:0, :1, :2, :3, :4)", $_POST['userid'], $p['patientId'], $p['relation'], htmlspecialchars($p['description']), $p['scent']); } else { // if exists, update row $t->addStatement("UPDATE :prefix:visit SET\n relation = :0,\n description = :1,\n scent = :2 \n WHERE visitId = :3", $p['relation'], htmlspecialchars($p['description']), $p['scent'], $visitId); } $t->commit(); $t = new transaction(); // commit those changes right now /* * Update images */ $t->addStatement("DELETE FROM :prefix:visit_media WHERE visitId = :0 AND type = :1", $visitId, 'Image'); if (isset($p['images']) && is_array($p['images'])) { foreach ($p['images'] as $img) { $t->addStatement("INSERT INTO :prefix:visit_media (visitId, path, type) VALUES (:0, :1, :2);", $visitId, basename($img), "Image"); } } /* * Update audios */ $t->addStatement("DELETE FROM :prefix:visit_media WHERE visitId = :0 AND type = :1", $visitId, 'Audio'); if (isset($p['audios']) && is_array($p['audios'])) { foreach ($p['audios'] as $aud) { $t->addStatement("INSERT INTO :prefix:visit_media (visitId, path, type) VALUES (:0, :1, :2);", $visitId, basename($aud), "Audio"); } } }
if (count($errors) > 0) { echo "<ul>"; foreach ($errors as $err) { echo "<li>{$err}</li>"; } die; } if (dbConn::querySingle("SELECT COUNT(*) FROM :prefix:plan WHERE \n name = :0\n public < CURRENT_TIMESTAMP OR \n editable < CURRENT_TIMESTAMP", $_POST['plan']) > 1) { die("REFRESH"); } try { $t = new transaction(); // delete removed workers from database if (isset($d['deleted'])) { foreach ($d['deleted'] as $key => $val) { $t->addStatement("DELETE FROM :prefix:worker WHERE production = :0 \n AND shift = :1\n AND name = :2\n AND email = :3", $d['production'], $d['shiftId'], $val['name'], $val['email']); } } // update existing or insert the added workers if (isset($d['workers'])) { foreach ($d['workers'] as $key => $val) { if ($val['action'] == "create") { $t->addStatement("INSERT INTO :prefix:worker (name, email, production, plan, shift) VALUES (:0, :1, :2, :3, :4);", htmlspecialchars($val['name']), htmlspecialchars($val['email']), $d['production'], $_POST['plan'], (int) $d['shiftId']); } else { if ($val['action'] == "update") { $arr = explode("\n", $val['uid']); $t->addStatement("UPDATE :prefix:worker SET name = :0, email = :1 \n WHERE production = :2 \n AND shift = :3\n AND name = :4\n AND email = :5", htmlspecialchars($val['name']), htmlspecialchars($val['email']), $d['production'], $d['shiftId'], htmlspecialchars($arr[0]), htmlspecialchars($arr[1])); } else { echo "unsupported action on user " . $val['name']; } }
require "../config.php"; require "../transaction.php"; $t = new transaction(); try { // delete removed productions foreach (dbConn::query("SELECT * FROM :prefix:production WHERE plan = :0", $_POST['plan']) as $r) { $deleted = true; if (isset($_POST['data'])) { foreach ($_POST['data'] as $key => $val) { if ($r['name'] == $val['uid']) { $deleted = false; } } } if ($deleted) { $t->addStatement("DELETE FROM :prefix:production WHERE plan = :0 AND name = :1", $_POST['plan'], $r['name']); } } // update existing productions if (isset($_POST['data'])) { foreach ($_POST['data'] as $key => $val) { $t->addStatement("UPDATE :prefix:production SET name = :0, masterName = :1, masterEmail = :2\n WHERE name = :3 AND plan = :4", $val['name'], $val['master']['name'] == "" ? null : $val['master']['name'], $val['master']['email'] == "" ? null : $val['master']['email'], $val['uid'], $_POST['plan']); foreach ($val['shifts'] as $sk => $sv) { if ($sv['checked'] == "true") { $t->addStatement("REPLACE INTO :prefix:production_shift (production, shift, plan, required) VALUES (:0, :1, :2, :3);", $val['name'], $sv['id'], $_POST['plan'], $sv['max']); } else { $t->addStatement("DELETE FROM :prefix:production_shift WHERE production = :0 AND shift = :1", $val['name'], $sv['id']); } } } }
[id] => 8 [from] => 12:00:00 [to] => 17:00:00 ) [1] => Array ( [id] => 2 [from] => 14:00:00 [to] => 18:30:00 ) ) ) ) */ try { $t = new transaction(); if (isset($_POST['data']['deleted'])) { foreach ($_POST['data']['deleted'] as $del) { $t->addStatement("DELETE FROM :prefix:shift WHERE shiftId = :0", $del); } } if (isset($_POST['data']['updated'])) { foreach ($_POST['data']['updated'] as $up) { $t->addStatement("UPDATE :prefix:shift SET fromDate = :0, toDate = :1 WHERE shiftId = :2", $up['from'], $up['to'], $up['id']); } } $t->commit(); echo "SUCCESS"; } catch (Exception $ex) { echo $ex->getMessage(); }