Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP sql变量引用了两个函数_Php_Sql_Wordpress - Fatal编程技术网

PHP sql变量引用了两个函数

PHP sql变量引用了两个函数,php,sql,wordpress,Php,Sql,Wordpress,如果我想在像这样的两个函数中使用变量$post->user\u 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->user\u 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'] );
}

怎么了?例如,如果我手动输入用户id,它就会工作。

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

function nico($post)
   ....
其次,您正在使用变量而不是名称声明另一个函数。试试这个

function nicoupdate($user_id)
   ....
然后用以下词语来称呼它:

noicoupdate($post->user_id);

什么不起作用?你会犯什么错误?RTFM:你说得对对不起:(我编辑了我只是想了解mechanism@nikz我的第二点仍然成立。您不能以现有方式定义函数参数列表。要么将用户id传递给函数(如上所示),要么将$post传递给函数。仍然不起作用…foreach($usermeta as$post){echo$post->user\u id;echo$post->name;echo$post->team;}函数nicupdate($user\u id)update\u usermeta($user\u id,'ptotali',$\u post['ptotti'])我回答了我自己的问题,展示代码。仍然不起作用,但不明白为什么。你怎么称呼它?把你的全部代码都写进你的问题里。