この厄介なコードでうまくいくはずです。group_concatを使用してnull以外の行を単一のフィールドにグループ化します。ユニオンは各行に対して1つの列のみがnullであることを意味するため、機能するはずです。
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
)
次に、行を適切に反復して、これを実行できるはずです。
Firstname : <%php echo $CustInfo['FirstName']; ?>
等々。
また、ここで興味があるかもしれない長さのQ&Aを書きました:SQLクエリが複数のテーブルからデータを返す方法
編集:答えた他の2人があなたにあなたのテーブルを再設計するように言ったのを見ます-私はそうしますが、ある種は同意しません。
このテーブルは厳密に正規化されています。つまり、100個のフォームフィールドを追加でき、テーブル自体に触れる必要はありません。これは(驚くほど)良いことです。この設計により、この特定のデータを取得するのが難しくなっていると思いますが、驚くほど迅速または簡単にアクセスできるとは言えませんが、非常に堅牢です。