<p>How would you store formatted blocks of text (line breaks, tabs, lists - etc.) in a database (nothing specific) to be displayed on the web (XHTML) while maintaining a level of abstraction so that the data can be used in other applications or if the structure of the website were to change in the future?</p>

This actually has very little to do with CodeIgniter and a lot with how mysql_fetch_assoc provides the query results.
The solution is that you should rename the columns inside the query using
```
"AS"
```
, e.g.
```
```
select type_of_source.description as type_of_source_description, origin.descripotion as origin_descripotion from ....
```
```