我试图从上一项中选择一个值,并将该数字每次增加一个。我让它工作到它选择当前条目值(缺省值1000)和增量1并重新插入值返回的地方(因此每次结果是1001 )。我需要它来选择该字段的前一项,所以它将去1001,1002,1003等。谢谢。
add_action('gform_after_submission_4', 'add_submission_id_four', 10, 2);
function add_submission_id_four($entry, $form) {
global $wpdb;
$field_number = 3;
$table = $wpdb->prefix . 'rg_lead_detail';
$form_id = 4; // update to the form ID your unique id field belongs to
$result = $wpdb->get_var("SELECT value FROM $table WHERE form_id = '$form_id'
AND field_number = '$field_number'");
$result++;
$unique = strval($result);
$wpdb->insert("{$wpdb->prefix}rg_lead_detail", array(
'value' => $unique,
'field_number' => $field_number,
'lead_id' => $entry['id'],
'form_id' => $entry['form_id']
));// update the entry
}发布于 2014-07-17 23:04:47
您可以使用MAX()函数获得该form_id和field_number的最大值,使用IFNULL()默认为1000 (因此1001是第一个返回的)。您也可以在SQL中执行+1,这样就不需要增加$result。
我发现使用$wpdb->prepare()来处理参数也是很好的形式。
$sql = "SELECT MAX(IFNULL(value,1000))+1 FROM {$wpdb->prefix}rg_lead_detail WHERE form_id = %d AND field_number = %d";
$result = $wpdb->get_var( $wpdb->prepare( $sql, $form_id, $field_number ) );
$unique = strval($result);发布于 2014-07-17 22:47:08
您可以只对值列使用AutoIncrement列吗?
https://stackoverflow.com/questions/24814640
复制相似问题