PHP sql变量引用了两个函数

时间:2013-09-21 18:13:35

标签: php sql wordpress

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

怎么了?如果我手动输入user_id,例如3就可以了。

1 个答案:

答案 0 :(得分:1)

嗯 - 我以前从未见过那种符号。 $usermeta as $post通常仅用于foreach语句。所以首先你需要删除$ usermeta作为函数定义的一部分。

function nico($post)
   ....

其次,您使用变量声明另一个函数,而不是使用名称。试试这个

function nicoupdate($user_id)
   ....

然后用:

调用它
noicoupdate($post->user_id);