Суммирование переменной внутри цикла.

Статус
В этой теме нельзя размещать новые ответы.

JohnB

Новичок
Суммирование переменной внутри цикла.

Народ, туплю.
Постораюсь объяснить как можно подробнее

Нужно получить сумму времени по каждому типу оборудования.

Есть запрос.



$result_time_n = mysql_query("SELECT zaya.date_send, sib_sum.date_complite FROM zaya, sib_oborud, sib_sum

where zaya.id=sib_sum.id_zay and zaya.id=sib_oborud.id and zaya.status='7' and sib_oborud.type='$q7[class]' and zaya.sroch='2' group by sib_oborud.id");

while ($time = mysql_fetch_row($result_time_n))
{

$razn = $time['1']-$time['0'];

// вывод переменной, которая показывает разницу времени от подачи заявки до выполнения

print "$razn<br>"; (выводит несколько значений, по каждому типу оборудования

т.е.

310625
89991
71275
22072
)
}

Вопрос. Как суммировать значение переменной чтобы сумма была одна. в данном случае 493963

$q7[class] = массив оборудования.
 

JohnB

Новичок
Не работает. Если пишу

SELECT sum(zaya.date_send), sum(sib_sum.date_complite)

то почему-то выдается число, которое в два раза больше первого поля в MySQL

-~{}~ 27.11.07 12:25:

Мне нужно понять, как суммировать массив из одного элемента в цикле.
 

kruglov

Новичок
JohnB
Опишите русскими словами задачу, что вам надо, а то цикл, сумма, переменная.
 

JohnB

Новичок
Неужели не кто не может натолкнуть на правильный подход.?
Или я сложно объяснил?
 

Фанат

oncle terrible
Команда форума
Да, очень сложно. А мы тупые.
Так что попробуй объяснить попроще
 

JohnB

Новичок
Ок. Вот просто словами.

Я с помощью select получаю доступ к полям базы, где хранятся цифры разные. В итоге выбираются 2 столбца с значениями времени. (числа)
Как мне получить сумму этих чисел?

-~{}~ 27.11.07 12:41:

соответственно 2 столбца = 2 значения суммы по одному и по второму.
 

Фанат

oncle terrible
Команда форума
запросом.
каким именно - тебе написал kruglov первым же ответом.
пр массивы забудь.
 

JohnB

Новичок
Вся сложность в том что если я пишу простой запрос .

SELECT sum(date_send) FROM zaya where status='7' AND sroch='2'

ТО сумма считается.

А если по 2 таблицам то нет.
 

phpdev2007

Новичок
JohnB
Приведите дамп таблиц с пару записями, и ваш запрос последнею версию, так будет проще посмотреть что у вас не работает.
 

JohnB

Новичок
group by тип оборудования

Тип оборудования группируется в переменной $q7[class] которая получается из запроса.

$result_class = mysql_query("SELECT class FROM oborud Group by class Order by class asc");

и потом внутри цикла форумируется 2 запрос, который выбирает даты в соостветствии с оборудованием.
Опять наверное вас запутал?
 

Фанат

oncle terrible
Команда форума
про "запутал" - это был сарказм.
На самом деле, конечно же, путаешься ты сам.

Внутри цикла не надо выполнять никаких запросов. надо сделать один, с объединением таблиц
 

JohnB

Новичок
Почему не надо если у меня таблица

-------------------------------------------------------------
Тип оборудования | Расчетные значения
-------------------------------------------------------------
Типы ($q7[class]) | value
--------------------------------------------------------------
........................... | value
--------------------------------------------------------------

Соответственно поле таблицы типы это запрос номер 1.

И внутри цикла заполнение ячеек в соответствии с типом. еще запросы.
 

phpdev2007

Новичок
PHP:
-- phpMyAdmin SQL Dump
-- version 2.6.4-pl4
-- http://www.phpmyadmin.net
-- 
-- Хост: localhost
-- Время создания: Ноя 27 2007 г., 12:07
-- Версия сервера: 4.1.20
-- Версия PHP: 5.2.0
-- 
-- БД: `test`
-- 

-- --------------------------------------------------------

-- 
-- Структура таблицы `test`
-- 

CREATE TABLE `test` (
  `id` int(10) NOT NULL auto_increment,
  `val` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;

-- 
-- Дамп данных таблицы `test`
-- 

INSERT INTO `test` VALUES (1, 5);
INSERT INTO `test` VALUES (2, 4);
INSERT INTO `test` VALUES (3, 2);
INSERT INTO `test` VALUES (4, 3);

-- --------------------------------------------------------

-- 
-- Структура таблицы `test2`
-- 

CREATE TABLE `test2` (
  `id` int(10) NOT NULL auto_increment,
  `sumtest2` int(11) NOT NULL default '0',
  `sumtest3` int(11) NOT NULL default '0',
  `sumtest4` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

-- 
-- Дамп данных таблицы `test2`
-- 

INSERT INTO `test2` VALUES (1, 100, 0, 0);
INSERT INTO `test2` VALUES (2, 11, 0, 0);
INSERT INTO `test2` VALUES (3, 12, 0, 0);

Запрос:
SELECT sum( `test`.`val` ) AS `sum_first` , sum( `test2`.`sumtest2` ) AS `sum_val`
FROM `test` , `test2`
WHERE `test`.`id` = `test2`.`id`
 

JohnB

Новичок
CREATE TABLE `zaya` (
`id` int(11) NOT NULL auto_increment,
`sluj` int(11) NOT NULL default '0',
`magaz` varchar(30) NOT NULL default '',
`who_send` varchar(20) NOT NULL default '',
`date_send` double NOT NULL default '0',
`text` text NOT NULL,
`type` varchar(20) NOT NULL default '',
`device` varchar(20) NOT NULL default '',
`serial` varchar(30) NOT NULL default '',
`status` int(11) NOT NULL default '0',
`who_add` varchar(100) NOT NULL default '0',
`dor` varchar(100) NOT NULL default '0',
`sroch` int(11) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `index1` (`magaz`)
) TYPE=MyISAM;


CREATE TABLE `sib_oborud` (
`id` int(11) NOT NULL default '0',
`type` varchar(100) NOT NULL default '',
`marka` varchar(100) NOT NULL default '',
`serial` varchar(100) NOT NULL default ''
) TYPE=MyISAM;


CREATE TABLE `sib_sum` (
`id_zay` int(11) NOT NULL default '0',
`id_sum` int(11) NOT NULL default '0',
`status_sum` int(11) NOT NULL default '0',
`prioritet` int(11) NOT NULL default '0',
`date_sum` int(11) NOT NULL default '0',
`who_add` varchar(50) NOT NULL default '',
`who_complete1` varchar(50) NOT NULL default '',
`out_complete` varchar(100) NOT NULL default '',
`date_and` int(11) NOT NULL default '0',
`complite` varchar(50) NOT NULL default '',
`finish_complite` varchar(100) NOT NULL default '',
`date_complite` int(11) NOT NULL default '0',
`time_nach` int(11) NOT NULL default '0',
`time_ok` int(11) NOT NULL default '0',
`doroga_time` int(11) NOT NULL default '0',
`transport_reports` int(11) NOT NULL default '0',
`pererabotka` int(11) NOT NULL default '0',
`comment` text NOT NULL,
`comment2` text NOT NULL,
`comm` text NOT NULL,
PRIMARY KEY (`date_sum`)
) TYPE=MyISAM;

-~{}~ 27.11.07 13:20:

У каждой таблицы есть поле id(int) оно во всех таблицах одиноковое. по нему идет связка.
 

Фанат

oncle terrible
Команда форума
Почему не надо если у меня таблица
потому, что надо сделать один запрос, с объединением таблиц
ты уже давно работаешь с бд, как минимум - с августа.
пора учиться с ней работать
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху