Самый простой - это сделать в любой клиентской программе, которую вы используете, чтобы получать и отображать вывод MySQL пользователя - определенно не проще всего реализовать функциональность уровня представления в данных слой! -) Так скажите нам, какой язык & c есть в вашей клиентской программе, и мы сможем помочь ...
Редактирование: предоставление простого клиентского решения Python по первоначальному запросу аскера.
С помощью API-интерфейса БД Python результаты запроса к БД можно проще всего рассматривать как список кортежей. Итак, вот функция для форматирования этих результатов по мере необходимости:
def formout(results):
marker = dict(__xx__=' Total')
current_stock = None
for stock, kind, cash in results:
if stock != current_stock:
print marker.get(stock, stock).strip()
current_stock = stock
if kind in marker and stock in marker:
kind = ' '*8
print ' %s;%s' % (marker.get(kind, kind), cash)
marker
- это словарь для сопоставления специального маркера '__xx__'
с нужной строкой в выходных данных (я добавляю его слева, соответственно, для «промежуточных» итогов, поэтому при печати итогового «итогового итога») Я .strip()
эти пропуски). Я также использую его для проверки особого случая, когда оба первых двух столбца являются маркером (потому что в этом случае второй столбец должен быть превращен в пробелы). Не стесняйтесь спрашивать в комментариях для любого дальнейшего разъяснения идиом Python и использования, которые могут быть необходимы!
Вот вывод, который я вижу, когда вызываю эту функцию с предоставленными данными (превращенными в список из 7 наборов по 3 строки в каждой):
AAPL
hardware;$279,296
software;$293,620
Total;$572,916
MSFT
hardware;$306,045
software;$308,097
Total;$614,142
Total
;$1,187,058
Выравнивание пространства не совпадает с тем, что я вижу в вопросе (что немного противоречиво с точки зрения того, сколько мест должно быть где), но я надеюсь, что оно достаточно близко к тому, что вы хотите, чтобы было легко чтобы настроить его в соответствии с вашими потребностями (так как вам все равно придется переводить Python на PHP, настройка пространства, надеюсь, должна быть наименьшей из этого).