Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сложение :)
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Сложение :)

Страниц (2): [1] 2 »
 

1. Jampire - 25 Марта, 2011 - 23:14:14 - перейти к сообщению
Есть таблица, в ней 2 колонки (колонка со знаком + или -, и суммой)
Соответственно выводятся они в разные колонки.
Можно ли как-то их объеденить и вывести в одну ячейку результат всей таблицы (посчитать суммы),
соответственно если в строчке +сумма, то прибавлять, если -сумма, то отнимать.

Повторюсь знак и сумма находятся в разных колонках таблицы.
2. OrmaJever - 25 Марта, 2011 - 23:18:06 - перейти к сообщению

Тоесть просто сплюсовать одну колонку и другую. Какой у сумы знак не имеет значение.
3. AdMeen - 25 Марта, 2011 - 23:19:27 - перейти к сообщению
Jampire пишет:
Есть таблица, в ней 2 колонки (колонка со знаком + или -, и суммой)
Соответственно выводятся они в разные колонки.
Можно ли как-то их объеденить и вывести в одну ячейку результат всей таблицы (посчитать суммы),
соответственно если в строчке +сумма, то прибавлять, если -сумма, то отнимать.
Повторюсь знак и сумма находятся в разных колонках таблицы.


Что за таблица? БД? Или какая-то хитрая, особая таблица? Научитесь ставить грамотно вопросы, тогда будете получать на них стоящие ответы!
4. Мелкий - 25 Марта, 2011 - 23:19:54 - перейти к сообщению
Костыль, конечно, но у mysql неявное приведение типов работает.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`znak`,`num`)) FROM `table`
5. Jampire - 25 Марта, 2011 - 23:45:32 - перейти к сообщению
AdMeen пишет:
Jampire пишет:
Есть таблица, в ней 2 колонки (колонка со знаком + или -, и суммой)
Соответственно выводятся они в разные колонки.
Можно ли как-то их объеденить и вывести в одну ячейку результат всей таблицы (посчитать суммы),
соответственно если в строчке +сумма, то прибавлять, если -сумма, то отнимать.
Повторюсь знак и сумма находятся в разных колонках таблицы.


Что за таблица? БД? Или какая-то хитрая, особая таблица? Научитесь ставить грамотно вопросы, тогда будете получать на них стоящие ответы!


Канеш бд.
(Добавление)
OrmaJever пишет:
Тоесть просто сплюсовать одну колонку и другую. Какой у сумы знак не имеет значение.

В том то и дело не так тут все просто. + или - нужно узнавать у таблицы в бд, также, как и сумму.
(Добавление)
Мелкий пишет:
Костыль, конечно, но у mysql неявное приведение типов работает.
CODE (SQL):
скопировать код в буфер обмена
SELECT sum(concat(`znak`,`num`)) FROM `table`

Не совсем понялНедовольство, огорчение
(Добавление)
Таблица имеет формат
PHP:
скопировать код в буфер обмена
  1. Кол1      Кол2
  2. +       10     
  3. -       1.75
6. Мелкий - 26 Марта, 2011 - 01:10:03 - перейти к сообщению
Jampire пишет:
Не совсем понял

Что именно?
Конкатенируем знак значения и само значение, приводим к числу. С приведением mysql справляется самостоятельно. Дальше обрабатываем как число, в моём примере - суммированием по всем строкам таблицы.

Но лучше, конечно, не извращайтесь и используйте числовой тип поля со знаком.
7. Jampire - 27 Марта, 2011 - 11:35:55 - перейти к сообщению
Мелкий, можеш привести пример кода ?

Не пойму, что нужно кроме
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`znak`,`num`)) FROM `table`
8. Мелкий - 27 Марта, 2011 - 11:52:47 - перейти к сообщению
Это законченный пример для вашей задачи. Только подставьте свои названия полей и таблицы.
9. Jampire - 27 Марта, 2011 - 12:02:25 - перейти к сообщению
Мелкий, ну а как потом вывести "то, что получилось" в echo ?
10. Мелкий - 27 Марта, 2011 - 12:06:13 - перейти к сообщению
http://php.su/mysql/
11. Jampire - 27 Марта, 2011 - 12:54:48 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $result=mysql_query('SELECT sum(concat(`col1`,`col2`)) FROM `mytable`');
  2. while($row=mysql_fetch_array($result)){
  3. echo "???";
  4. }

Вроде так, но всеже не знаю что в echo.
PHP:
скопировать код в буфер обмена
  1. Если так:
  2. echo $row['???']
  3. то тут нет конкретных колонок
12. OrmaJever - 27 Марта, 2011 - 13:05:51 - перейти к сообщению
Jampire mysql_fetch_array() возвращает масив. Правельно? А здесь можно включить логику и вывести так:

и сразу станет ясно какие там индексы.
ЗЫ. всё просто если немного подумать.
13. Jampire - 27 Марта, 2011 - 14:51:54 - перейти к сообщению
Скрипт:
PHP:
скопировать код в буфер обмена
  1. $result=mysql_query('SELECT sum(concat(`OperationType`,`OperationVal`)) FROM `table`');
  2. while($row=mysql_fetch_array($result)){
  3. echo var_dump($row);
  4. }

Браузер:
CODE (html):
скопировать код в буфер обмена
  1. array(2) { [0]=> string(1) "0" ["sum(concat(`OperationType`,`OperationVal`))"]=> string(1) "0" }
14. Jampire - 30 Марта, 2011 - 15:48:08 - перейти к сообщению
Ап
15. Viper - 30 Марта, 2011 - 16:06:04 - перейти к сообщению
Jampire
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`col1`,`col2`)) AS sum_col FROM `mytable`


PHP:
скопировать код в буфер обмена
  1. echo $row['sum_col'];

 

Powered by ExBB FM 1.0 RC1