Intereting Posts
Восклицательный знак случайным образом в результате PHP-HTML-Email ZendX_JQuery или Zend_Dojo? Как сохранить изменение разметки, которое я сделал, при переходе с одной страницы на другую? Метод вызываемого конструктора для WP_Widget устарел с версии 4.3.0 Symfony2 fos логин, зарегистрируйтесь и забыли пароль в одном представлении Заголовок NGINX «Access-Control-Allow-Origin» содержит несколько значений PHP PDO-запрос возвращает неточное значение для полей FLOAT назначить клиента нескольким группам клиентов на пурпурный Как запустить несколько php-скриптов в фоновом режиме на ubuntu? Codeigniter 2.1.3: sess_destroy () вызывает Неопределенный индекс: session_id и т. Д., Когда «sess_use_database» == TRUE Сеансы Laravel без файлов cookie Вызов события Magento Наблюдатель ПОСЛЕ удержания платежа Отображение выбранных значений в поле Multiselect Умышленно медленная загрузка страницы HTML / PHP для тестирования Изменение размера анимированного GIF-файла без уничтожения анимации

Добавление общей суммы mysql_num_rows в цикл while

Например, у меня есть результаты mysql_num_rows 4,8,15,16,23,42 в запросе, который находится внутри цикла while другого запроса. Мой вопрос в том, как я могу суммировать все результаты внутри цикла while? (Всего 133) Спасибо.

РЕДАКТИРОВАТЬ:

Как насчет того, хочу ли я получить процент за каждый результат mysql_num_rows внутри моего цикла while? Пример: 4,8,15,16,23,42. Итого 108. $ sum = 108. Процент 4 = 4 / $ sum = 3,7%, 8 = 8 / $ sum = 7,4% и т. Д.

Попробуйте что-то вроде этого:

 $Sum = 0; while ($SomeInvariant) { mysql_query($SomeQuery); $Sum += mysql_num_rows(); } echo 'The sum is: ' . $Sum; 

Однако этот подход не очень эффективен (что, если $SomeInvariant верно для многих итераций, а ваше приложение имеет еще больше одновременных пользователей?). Для этого я бы рекомендовал реструктурировать ваш подход, чтобы добавление было выполнено в SQL. Таким образом, ваш запрос может выглядеть примерно так: SELECT SUM(ColumnName) FROM ...

ОБНОВЛЕНИЕ: Рассмотрение последующего вопроса в комментариях

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

Например:

 $Sum = 0; $Rows = array(); while ($SomeInvariant) { mysql_query($SomeQuery); $Value = mysql_num_rows(); $Rows[] = $Value; // Push the value onto the row array $Sum += $Value; // Add the value to the cumulative sum } echo 'The sum is: ' . $Sum; foreach ($Rows as $Row) { echo $Row . '/' . $Sum . ' = ' . number_format($Row / $Sum) . '%'; }