if ($cnt != 0) { $stmt = $db->prepare($sel_sql); $stmt->execute($params); foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $file_id = $row['file_id']; $div = 'upd'; } } } // 更新の場合 if ($div == 'upd') { // 更新可否の判断。 // 以下の条件でレコードがある場合、古いデータとして扱い更新しない。 // 1. リクエスト送信時刻がレコードの値以上 // 2. リクエスト送信時刻が同じ、かつリクエストの通し番号がレコードの値以上。 $sel_sql = getSQLBaseForFileList(); $sel_sql .= " AND file.file_id = :file_id AND ( file.request_time > :request_time OR ( file.request_time = :request_time AND file.seq_no >= :seq_no ))"; $sql = "SELECT count(*) cnt FROM ({$sel_sql}) as tmp"; $params = array(); $params[':file_id'] = $file_id; $params[':request_time'] = $request_time; $params[':seq_no'] = $seq_no; $stmt = $db->prepare($sql); $stmt->execute($params); $cnt = 0; foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { $cnt = (int) $row['cnt']; } // flie テーブルにレコードがある場合は、リクエストが古いので破棄する。 if ($cnt != 0) { $db->beginTransaction();
// parameters 取得 // --------------------------- $grp_id = \Sop\Session::getSiteData('grp_id'); $user_id = \Sop\Session::getSiteData('user_id'); $div = array_key_exists('div', $_REQUEST) ? $_REQUEST['div'] : ''; $smpl_given_no = array_key_exists('smpl_given_no', $_REQUEST) ? $_REQUEST['smpl_given_no'] : ''; $pj_id = array_key_exists('pj_id', $_REQUEST) ? $_REQUEST['pj_id'] : ''; $sop_id = array_key_exists('sop_id', $_REQUEST) ? $_REQUEST['sop_id'] : ''; $tpl_id = array_key_exists('tpl_id', $_REQUEST) ? $_REQUEST['tpl_id'] : ''; $schema_id = array_key_exists('schema_id', $_REQUEST) ? $_REQUEST['schema_id'] : ''; $schema_type = array_key_exists('schema_type', $_REQUEST) ? $_REQUEST['schema_type'] : ''; $file_id = array_key_exists('file_id', $_REQUEST) ? $_REQUEST['file_id'] : ''; // file_idが指定されていない場合はその他の情報から補間する // (初回入力時にはfile_idが空の場合がある) if (!$file_id) { $file = R::getRow(getSQLBaseForFileList() . ' AND file.pj_id = ?' . ' AND file.sop_id = ?' . ' AND file.tpl_id = ?' . ' AND file.schema_id = ?' . ' AND file.schema_type = ?' . ' AND file.smpl_given_no = ?', array($pj_id, $sop_id, $tpl_id, $schema_id, $schema_type, $smpl_given_no)); $file_id = $file['file_id']; } // --------------------------- // HTML 作成 // --------------------------- $html_list = array(); // --- schema 取得 $sql = getSQLBaseForSchemaList(); $sql .= " AND schema.schema_id = :schema_id"; $params = array(); $params[':schema_id'] = $schema_id; $stmt = $db->prepare($sql); $stmt->execute($params); $schema = null; foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {