コード例 #1
0
 /**
  * Set the value of this field to the next sequence for the form field.
  * @param I2CE_FormField $form_field
  */
 public function FF_IG_setSequence($form_field)
 {
     $form_field_id = $form_field->getAttribute("DBEntry_form_field_id");
     $update_query = "INSERT INTO field_sequence (form_field, sequence) SELECT " . $form_field_id . ", LAST_INSERT_ID( IFNULL( MAX(sequence), 0) +1 ) FROM (SELECT MAX(integer_value) AS sequence FROM last_entry WHERE form_field = " . $form_field_id . " UNION SELECT sequence FROM field_sequence WHERE form_field = " . $form_field_id . ") as next_sequence ON DUPLICATE KEY UPDATE sequence = values(sequence)";
     $select_query = "SELECT LAST_INSERT_ID() AS sequence";
     I2CE::raiseError($update_query);
     $res = $this->db->exec($update_query);
     if (!I2CE::pearError($res, "Error setting new field sequence:")) {
         $res = $this->db->getRow($select_query);
         if (!I2CE::pearError($res, "Error getting new field sequence:")) {
             $form_field->setValue($res->sequence);
             $form_field->setGenerate(false);
         }
     }
 }