我在 WORDPRESS 上,我想更新名为 wppl_friends_locator 的表,更准确地说是 lat 和 long 的字段>登录用户
每次登录访问该网站时,它实际上都会获取他的坐标:
$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/