У меня есть столбец «цена» в таблице, и я использовал сценарий разбивки на страницы для генерации отображаемых данных. Теперь разбиение на страницы работает отлично, но я пытаюсь иметь окончательную строку в моей таблице HTML, чтобы показать общую стоимость. Поэтому я написал сценарий, чтобы сделать это с помощью цикла foreach и его видов работ, где он дает мне общую сумму всех сумм, вместе взятых, но это сумма всех строк, даже тех, которые находятся на следующих страницах , Как я могу получить только сумму строк, отображаемых в разбивке на страницы?
Вот запрос ..
SELECT purchase_log.id, purchase_log.date_purchased, purchase_log.total_cost, purchase_log.payment_status, cart_contents.product_name, members.first_name, members.last_name, members.email FROM purchase_log LEFT JOIN cart_contents ON purchase_log.id = cart_contents.purchase_id LEFT JOIN members ON purchase_log.member_id = members.id GROUP BY `id` ORDER BY `id` DESC LIMIT 0,30";
Просто используйте функцию MySQL FOUND_ROWS () : http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
Вам нужно добавить LIMIT 0,20 к запросу mysql, это будет суммировать только текущие результаты, отображаемые на странице.
Я предполагаю, что вы используете LIMIT для публикации результатов, если вы не массируете данные в сетку, и в этом случае вам нужно будет отправить код.
Как насчет использования функции mysql SUM в вашем запросе mySQL? http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_sum
Сначала вам нужно инициализировать итоговое значение до нуля, чтобы он мог отображать сумму записей, которые вы извлекаете с лимитом.
<?php $total = 0; foreach ($purchase as $items) : $total += $items['purchase_log.total_cost']; endforeach; ?>
Надеюсь это поможет.