If you want a normalised database, then you shouldn't keep totals anywhere. Instead, you simply traverse the transactions table and sum the values for each account.
To make this easier, it is better to change the structure of the transactions table: remove the 'user_to' field, so that every physical transaction is represented by two rows within the table. Your structure would be something like
trans // primary key
user // foreign key to users table
money
curdate
details // a varchar field which holds the details of each transaction
Translating your data into the new structure would give data like
1;1;23;20/09/2013;concert tickets
2;2;-23;20/09/2013; concert tickets
3;3;15;21/09/2013;whatever
4;1;-15,21/09/2013;whatever
5;2;10;22/09/2013;
6;3;-10;22/09/2013;
Then calculating someone's balance simply becomes
select users.name, sum (transactions.money)
from transactions inner join users on users.id = transactions.user
group by users.name
This table structure requires that you use sql transactions to ensure that you always write a pair of matched rows to the table.
In real accountancy programs, the transaction table is split into two parts: a header (containing the transaction id, date, details, currency, etc) and lines (user, money, etc). This structure enables one to create transactions where there are more than one account to be credited or debited (for example, if a company invoices a customer for something and there is tax charged on the sale, then the customer will be debited and both sales and tax credited).
If you have a huge number of accounts, a huge number of transactions and a legal need to present end of year accounts, then you could create a table which contains balances per account at each year's end; calculating the total would mean starting from the beginning of the current year and adding the total of this year's transactions to the previously stored total. But judging by your question, this seems like overkill.
If you want to display only the transactions from a given date but still display the totals, then you would need two queries: one calculates the total upto the given date and the other displays the transactions from the given date. The closing balance will the the sum of the opening balance and all the displayed transactions.