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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сложение :)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Jampire
Отправлено: 25 Марта, 2011 - 23:14:14
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




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

Повторюсь знак и сумма находятся в разных колонках таблицы.

(Отредактировано автором: 25 Марта, 2011 - 23:14:51)



-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
OrmaJever
Отправлено: 25 Марта, 2011 - 23:18:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)





Тоесть просто сплюсовать одну колонку и другую. Какой у сумы знак не имеет значение.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
AdMeen
Отправлено: 25 Марта, 2011 - 23:19:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 370
Дата рег-ции: Сент. 2009  
Откуда: Воронеж


Помог: 1 раз(а)




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


Что за таблица? БД? Или какая-то хитрая, особая таблица? Научитесь ставить грамотно вопросы, тогда будете получать на них стоящие ответы!
 
 Top
Мелкий Супермодератор
Отправлено: 25 Марта, 2011 - 23:19:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Костыль, конечно, но у mysql неявное приведение типов работает.
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`znak`,`num`)) FROM `table`


-----
PostgreSQL DBA
 
 Top
Jampire
Отправлено: 25 Марта, 2011 - 23:45:32
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




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


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


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

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

Не совсем понялНедовольство, огорчение
(Добавление)
Таблица имеет формат
PHP:
скопировать код в буфер обмена
  1. Кол1      Кол2
  2. +       10     
  3. -       1.75

(Отредактировано автором: 25 Марта, 2011 - 23:57:25)



-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
Мелкий Супермодератор
Отправлено: 26 Марта, 2011 - 01:10:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Jampire пишет:
Не совсем понял

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

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


-----
PostgreSQL DBA
 
 Top
Jampire
Отправлено: 27 Марта, 2011 - 11:35:55
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Мелкий, можеш привести пример кода ?

Не пойму, что нужно кроме
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`znak`,`num`)) FROM `table`

(Отредактировано автором: 27 Марта, 2011 - 11:36:34)



-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2011 - 11:52:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Это законченный пример для вашей задачи. Только подставьте свои названия полей и таблицы.


-----
PostgreSQL DBA
 
 Top
Jampire
Отправлено: 27 Марта, 2011 - 12:02:25
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Мелкий, ну а как потом вывести "то, что получилось" в echo ?


-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2011 - 12:06:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
Jampire
Отправлено: 27 Марта, 2011 - 12:54:48
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




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. то тут нет конкретных колонок

(Отредактировано автором: 27 Марта, 2011 - 12:55:25)



-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
OrmaJever
Отправлено: 27 Марта, 2011 - 13:05:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Jampire mysql_fetch_array() возвращает масив. Правельно? А здесь можно включить логику и вывести так:

и сразу станет ясно какие там индексы.
ЗЫ. всё просто если немного подумать.

(Отредактировано автором: 27 Марта, 2011 - 13:06:46)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Jampire
Отправлено: 27 Марта, 2011 - 14:51:54
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Скрипт:
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" }


-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
Jampire
Отправлено: 30 Марта, 2011 - 15:48:08
Post Id



Гость


Покинул форум
Сообщений всего: 106
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Ап


-----
не будите во мне зверя!!! он и так не высыпается...
 
 Top
Viper
Отправлено: 30 Марта, 2011 - 16:06:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Jampire
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT sum(concat(`col1`,`col2`)) AS sum_col FROM `mytable`




-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB