PHP sql 变量引用两个函数


PHP sql variable references two functions

如果我想在这样的两个函数中使用变量$post->user_id,它不起作用。为什么?

foreach ($usermeta as $post) {
    echo $post->user_id;
    echo $post->name;
    echo $post->team; 
}
function nicoupdate($post->user_id) {
    update_usermeta( $post->user_id , 'ptotali', $_POST['ptolti'] );
}

我不明白。


仍然不起作用:

$sql="SELECT `user_id`,
 max(case when  `meta_key` = 'name' then `meta_value` end)  as name ,
 max(case when  `meta_key` = 'team' then `meta_value` end) as team ,
 max(case when  `meta_key` = 'ptotali' then `meta_value` end) as points ,
 FROM wp_usermeta

 GROUP BY `user_id`   
 ORDER BY points DESC";
global $wpdb;
$usermeta = $wpdb->get_results($sql) or die(mysql_error());
foreach ($usermeta as $post) {
    echo $post->user_id;
    echo $post->name;
    echo $post->team; 
}
function nicoupdate($user_id) {
    update_usermeta( $user_id , 'ptotali', $_POST['ptolti'] );
}

怎么了?如果我手动放置例如 3 的user_id它可以工作。

好吧 - 我以前从未见过这种符号。 $usermeta as $post通常只在 foreach 语句中使用。因此,首先需要将$usermeta作为函数定义的一部分删除。

function nico($post)
   ....

其次,您正在声明另一个带有变量而不是名称的函数。试试这个

function nicoupdate($user_id)
   ....

然后用以下命令调用它:

noicoupdate($post->user_id);