This nasty bit of code should do the trick, it uses group_concat to group nonzero rows into a single nd field, since unions mean that only one column is null for each row, it should work:
select group_concat(Firstname) as FirstName, group_concat(Surname) as Surname, group_concat(Add1) as Add1, group_concat(Add2) as Add2, group_concat(Add3) as Add3, group_concat(Country) as Country, group_concat(ZipCode) as ZipCode from ( select value as FirstName, null as Surname, null as Add1, null as Add2, null as Add3, null as Country, null as ZipCode from wp_wpsc_submited_form_data where log_id = '6' // I can't actually see this field in your columns?? and form_id=2 union select null as FirstName, Value as Surname, null as Add1, null as Add2, null as Add3, null as Country, null as ZipCode from wp_wpsc_submited_form_data where log_id = '6' and form_id=3 union ... ... ... union select null as FirstName, null as Surname, null as Add1, null as Add2, null as Add3, null as Country, Value as ZipCode from wp_wpsc_submited_form_data where log_id = '6' and form_id=8 )
Then you should iterate through the lines well and do this:
Firstname : <%php echo $CustInfo['FirstName']; ?>
And so on.
I also wrote a Q & A length that may interest you here: How an SQL query can return data from multiple tables
Edit: I see that the other two people who responded told you to redesign the table, which I kind of do, but seemingly disagree.
This table is firmly normalized , which means that you can add a hundred additional form fields and not touch the table itself - this is (surprisingly) a good thing. I would say that this design makes it difficult for you to obtain this data, but it is very reliable - if not surprisingly quick or easy access.