Добавление значений внутри цикла while - PullRequest
0 голосов
/ 03 марта 2011

С первым запросом в следующем коде я ищу проверки, сделанные в Берлине под игрой номер два.

Со вторым запросом я хочу дать баллы за каждую из проверок.

Как вы увидите, я использую функцию SUM.Но допустим, что у меня есть 2 проверки, и точки для каждой проверки равны 50. Ну, вместо того, чтобы повторить 100, с этим кодом я повторяю 5050

Что с ним не так?

Большое спасибо

Код исправлен и работает, просто в случае, если кому-то это нужно.Спасибо всем

       $querya = "SELECT * FROM checkins where gamesid=2 and city='Berlin'";
 $resulta = mysql_query($querya) or die(mysql_error());

 $sumOfPoints = 0;
 while($rowa = mysql_fetch_array($resulta)){

      $n = $rowa['venuesid'];
      $queryb = "SELECT venuesid, SUM(points) as sumpoints from venues where venuesid='".$n."' GROUP BY venuesid ORDER BY venuesid";
      $resultb = mysql_query($queryb) or die(mysql_error());

      while($rowb = mysql_fetch_array($resultb)){

           $sumOfPoints +=  $rowb['sumpoints'];

      }

 }


  echo "Total points is $sumOfPoints<br/>";

Ответы [ 3 ]

1 голос
/ 03 марта 2011

Некоторые предложения

  1. Использовать SUM(points) AS sum (только для ясности при использовании суммы)

  2. Убедитесь, что точки являются числовыми полями, а не varchar.

1 голос
/ 03 марта 2011

точек должны быть строкой, вам нужно привести их

SUM(cast(points) as int)

и затем следуйте указаниям Гаурава о маркировке вычислений

0 голосов
/ 03 марта 2011

Вы получаете 5050, потому что ваш скрипт повторяет 50 в двух итерациях цикла.

Судя по всему, предложение GROUP BY вашего второго запроса не группируется по venuesid когда это должно быть.Итак, сначала попробуйте изменить предложение GROUP BY на:

GROUP BY venuesid

Если это не даст вам результата, который вы ищете, то вы должны попробовать выполнить свой запрос непосредственно кбазу данных со статическим значением для venuesid, чтобы увидеть, что вы от нее получите, затем, возможно, обновите ваш вопрос, и мы сможем принять его оттуда.

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