2013-09-21 6 views
0

Я бы обновил поле значения определенного идентификатора, сгенерированного из цикла foreach.SQL - PHP foreach variable ID out loop

$sql = "SELECT `user_id`, 
    max(case when `meta_key` = 'link' then `meta_value` end) as link , 
    max(case when `meta_key` = 'team' then `meta_value` end) as team , 
    max(case when `meta_key` = 'points' 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 "<li> name: ". $post->team ."<br/> link: ". $post->link . "<br/> obtain: " .$post->points. " points </li>" ; 

выход на странице что-то вроде:

команды: манчестер ссылка: manunited.co.uk баллов: 8

Пользователь может проголосовать за команду и команду заработайте 8 баллов, поэтому мне нужно обновить это.

update_usermeta($post->user_id , 'points', $_POST['points']); 

проблема заключается в том, что за пределами Еогеаспа переменной $post->user_id не признается, но я нужен конкретный идентификатор команды, чтобы обновить его.

Спасибо всем.

+0

Хранить его в переменной темп, объявленной перед циклом? – Akash

+1

Для будущего кода: Вам не нужно указывать/возвращать имена столбцов и таблиц. Они только добавляют визуальный беспорядок и представляют собой еще один способ сделать синтаксические ошибки. Единственная причина, по которой вы нуждаетесь в них, - это то, что у вас есть имя столбца, которое является зарезервированным словом, и использование имен столбцов, которые являются зарезервированными словами, является ужасной идеей, так что это две вредные привычки, которые вы можете избежать сразу. –

+0

@AndyLester: Цитаты также необходимы для идентификаторов, которые содержат символы ASCII, отличные от основных латинских букв, цифры 0-9, доллар, подчеркивание; или которые состоят исключительно из цифр. eggyal

ответ

0

Я считаю, что вам нужно объявить:

global $post; 

вне цикла Еогеасп.

+1

Спасибо, я решил! я объявлял его перед циклом, но не работал, поэтому я обновил его после и работал! благодаря – nikz