Я работаю над небольшим количеством кода для суммирования количества секунд в столбце «длительности» таблицы mysql.Код, который я сейчас использую, похоже, суммирует все строки столбца, за исключением первой строки.
Например, если таблица содержит 3 строки, например:
- 10
- 15
- 20
Сумма этого столбца ДОЛЖНА быть 45, но вместо этого код, который я использую, вернет 35 и полностью пропустит первую строку таблицы.
Вот мой текущий код:
// GET THE DATA FROM THE 'DURATION' COLUMN
$sql = mysqli_query($mysqli,"SELECT SUM(duration) AS total FROM timesheet WHERE username='$qname' AND payperiod='$payperiod'");
// LOOP AND ADD ALL THE DATA IN THE DURATION COLUMN
while ($result = mysqli_fetch_assoc($sql))
{
$duration = $result['total'];
}
Чего мне не хватает?Код работает до тех пор, пока он выполняется, и выдает сумму, назначенную переменной $ duration, однако сумма суммы неверна и, кажется, всегда пропускает первую строку таблицы в столбце для суммирования.
На следующем снимке экрана суммируемый столбец - это столбец «DURATION» в первой таблице.Затем сумма преобразуется в десятичное представление часов и отображается в столбце «ВСЕГО ЧАСОВ» второй таблицы.Независимо от того, какие значения вводятся в таблицу, конечный результат, ВСЕГО ЧАСОВ всегда пропускает данные из первой строки.
Когда яЗапустив те же запросы в самой базе данных MySQL, минуя PHP, я получаю те же результаты.Ниже приведены скриншоты запросов, выполняемых в базе данных.
Это запрашиваемые строки
Это сумма результата, возвращаемого базой данных
Из скриншотов видно, что найдено 3 записи, первая запись имеет продолжительность 13,38 часа, вторая запись - 0,19 часа, третья запись - 0,05 часа, но полученная суммапо базе данных составляет 888 секунд или 0,24 часа.