如果我想在这样的两个函数中使用变量$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);