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

标签 php mysql wordpress

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

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

$latitude = ( !empty( $_COOKIE['gmw_lat'] ) ) ? urldecode( $_COOKIE['gmw_lat'] ) : false;
$longitude = ( !empty( $_COOKIE['gmw_lng'] ) ) ? urldecode( $_COOKIE['gmw_lng'] ) : false;

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

该怎么办?我对 PHP 很陌生,我试图理解,我知道我不是在一个平台上询问和提供代码,但我需要几天的时间才能弄清楚这类事情,所以一点点帮助将不胜感激! p>

谢谢!

最佳答案

把它放在你的主题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()”之后调用它。

这是一个示例(我无法发表评论,所以我只是在此处添加它)。您也可以将其放在主题的 footer.php 中的“wp_footer()”之后

$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;
}

关于php - 如何在页面加载时更新数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36274092/

相关文章:

mysql - 如何对从 count() 派生的值求和 ()

php - WordPress WP_Query 循环似乎与实际查询不同

php - 在子类别页面中获取父类别 ID - Magento

php - 尝试在php中获取非对象简单html dom的属性

javascript - 只有手机safari打不开页面,没有网络消息

mysql - 或者在 MySQL 中使查询非常慢

php - 无法在 OpenCart (PHP) 中禁用错误​​报告

MySQL 同一单元上的多个 JOINS

php - 从 mysql 数据库中提取序列化数据并在 php 中反序列化和使用各个字段

html - 如何编辑wordpress Pablo Gaudi主题容器高度