如何在页面加载时更新数据库?

时间:2016-03-29 01:56:24

标签: php mysql wordpress

我在WORDPRESS上,我想更新名为 wppl_friends_locator 的表格,更确切地说是 lat long 的字段>登录用户

每次登录访问网站时,它实际上都会抓住他的坐标:

allNextBtn.click(function(){
  var curStep = $(this).closest(".setup-content_cli"),
      curStepBtn = curStep.attr("id"),
      nextStepWizard = $('div.setup-panel_cli div a[href="#' + curStepBtn + '"]').parent().next().children("a"),
      curInputs = curStep.find("input[type='text'],input[type='email'],input[type='url'],textarea, email,select,select[readonly]"),
      isValid = true;

  $(".form-group").removeClass("has-error");
  for(var i=0; i<curInputs.length; i++){
      if (!curInputs[i].validity.valid){
        isValid = false;
        $(curInputs[i]).closest(".form-group").addClass("has-error");
        $("#"+$(curInputs[i]).attr('id')+"ErrorCLI").show("fast");
        //$(curInputs[0]).closest(".form-group").focus();
      }
      else{
        $("#"+$(curInputs[i]).attr('id')+"ErrorCLI").hide("fast");
      }
  }

  if (isValid)
      nextStepWizard.removeAttr('disabled').trigger('click');
});

现在我希望在某些页面上,当用户加载这些页面时,数据库会被这些值更新...

怎么办?我是PHP的新手,我试着理解,我知道我不是在平台上询问并提供代码,但我需要花费数天的时间才能想出这样的东西,所以一点点帮助都会非常感激!

谢谢!

1 个答案:

答案 0 :(得分:1)

将它放在你的主题functions.php

function update_coordinate( $latitude, $longitude ){
    global $current_user;
    global $wpdb;
    $update_result = false;

    if ( is_user_logged_in() ) {
        $update_arr = array(
            'latitude' => $latitude,
            'longitude' => $longitude
        );

        $update_result = $wpdb->update( 'wppl_friends_locator', $update_arr, array( 'user_id' => $current_user->ID ) );
    }

    return $update_result;
}

然后在模板文件中调用“update_coordinate”函数(带有纬度和经度参数)。你可以在“get_footer()”之后调用它。

这是一个示例(我不能发表评论,所以我只是在这里添加)。您也可以在“wp_footer()”

之后将它放在主题的footer.php中
$latitude = ( !empty( $_COOKIE['gmw_lat'] ) ) ? urldecode( $_COOKIE['gmw_lat'] ) : false;
$longitude = ( !empty( $_COOKIE['gmw_lng'] ) ) ? urldecode( $_COOKIE['gmw_lng'] ) : false;

update_coordinate( $latitude, $longitude );

<强>更新 如果当前用户表中没有行

,则插入
function update_coordinate( $latitude, $longitude ){
    global $current_user;
    global $wpdb;
    $query_result = false;

    if ( is_user_logged_in() ) {
        # check if user has record
        $row_count = $wpdb->get_var( $wpdb->prepare( 
            "SELECT count(member_id) FROM wppl_friends_locator WHERE member_id = %d", $current_user->ID ) );

        if ( $row_count > 0 ) {
            $update_arr = array(
                'lat' => $latitude,
                'long' => $longitude
            );
            $query_result = $wpdb->update( 'wppl_friends_locator', $update_arr, array( 'member_id' => $current_user->ID ) );

        }else{
            $insert_arr = array(
                'member_id' => $current_user->ID,
                'lat' => $latitude,
                'long' => $longitude
            );
            $query_result = $wpdb->insert( 'wppl_friends_locator', $insert_arr );

        }
    }   

    return $query_result;
}