PHP: суммирование необходимо внутри цикла - PullRequest
1 голос
/ 22 февраля 2011

Студент вернулся.Спасибо за ваше терпение;)

Я использую цикл foreach, подобный следующему:

foreach ($value as $val)
{
//coming from database, from a select query:
$points = $row['points'];  

//now I want to update another database table:  
 $sql = "update user set totalpoints=".$points." where userid=".$uid." ";

//but by doing this, table user is updated with the value of $points in the last iterarion 

}

Что мне нужно сделать, чтобы обновить свою таблицу с суммированием $ точек ине со значением последней итерации?

Еще раз спасибо

Ответы [ 3 ]

3 голосов
/ 22 февраля 2011

Не уверен на 100%, но, кажется, вы хотите:

$sum = 0;

foreach ($value as $val) {
    $sum += $row['points'];  
}

$sql = "update user set totalpoints=".$sum." where userid=".$uid;
2 голосов
/ 22 февраля 2011
$points = 0;
while ($row = mysq_fetch_array()) // from where you are getting row
{
//coming from database, from a select query:
$points += $row['points'];  

}


//now I want to update another database table:  
 $sql = "update user set totalpoints=".$points." where userid=".$uid." ";
1 голос
/ 22 февраля 2011

Вы должны сделать все это в одном запросе

Я полагаю, что ваш исходный запрос был похож на SELECT * FROM matches WHERE userid='$uid' (что угодно), поэтому вместо этого сделайте что-то вроде UPDATE user SET totalpoints=(SELECT SUM(points) FROM matches WHERE userid='$uid' GROUP BY userid) WHERE userid='$uid' (Возможно, это не соответствует вашей конкретной проблеме, но я надеюсь, что вы поняли идею)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...