首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从以前的重力窗体条目中选择一个值(与SQL有关)

从以前的重力窗体条目中选择一个值(与SQL有关)
EN

Stack Overflow用户
提问于 2014-07-17 22:35:08
回答 2查看 1.2K关注 0票数 0

我试图从上一项中选择一个值,并将该数字每次增加一个。我让它工作到它选择当前条目值(缺省值1000)和增量1并重新插入值返回的地方(因此每次结果是1001 )。我需要它来选择该字段的前一项,所以它将去1001,1002,1003等。谢谢。

代码语言:javascript
复制
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
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-17 23:04:47

您可以使用MAX()函数获得该form_idfield_number的最大值,使用IFNULL()默认为1000 (因此1001是第一个返回的)。您也可以在SQL中执行+1,这样就不需要增加$result

我发现使用$wpdb->prepare()来处理参数也是很好的形式。

代码语言:javascript
复制
$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);
票数 0
EN

Stack Overflow用户

发布于 2014-07-17 22:47:08

您可以只对值列使用AutoIncrement列吗?

INCREMENT

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24814640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档