2013-09-21 53 views
0

如果我想在這樣的兩個函數中使用變量$post->user_id它不起作用。爲什麼?PHP sql變量引用兩個函數

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放入工作。

+0

什麼是不工作?你會得到什麼錯誤? –

+0

RTFM:http://php.net/function – BlitZ

回答

1

嗯 - 我從來沒有見過這種符號。通常只在foreach語句中使用$usermeta as $post。所以首先你需要刪除$ usermeta作爲函數定義的一部分。

function nico($post) 
    .... 

其次,你聲明另一個函數的變量,而不是名稱。試試這個

function nicoupdate($user_id) 
    .... 

然後調用它:

noicoupdate($post->user_id); 
+0

你對不起:(我編輯我只是想了解機制 – nikz

+1

@nikz我的第二點仍然存在。你不能以你的方式定義一個函數參數列表。或者將user_id傳遞給函數(如上所示),或將$ post傳遞給函數。 –

+0

仍然不工作... foreach($ usermeta as $ post){ echo $ post-> user_id; echo $後>名; 回聲$後>團隊; } 功能nicoupdate($ user_ID的) update_usermeta($ user_ID的, 'ptotali',$ _ POST [ 'ptolti']);} 我 – nikz