3 개의 테이블이 있습니다. Apls, Hulls 및 AplsHulls.다중 차원 배열을 반복하여 PHP에서 격자를 표시합니다.
이 Apls의는 ID, 이름, 선체가 ID를 구성 날짜 구성, 조인 테이블을 AplsHulls입니다 production_name과 아이디, apl_id, hull_id 상태로 구성되어 있습니다.
모든 선체가 각 APL과 관련되는 것은 아닙니다. 상태가 포함 된 조인 테이블에있는 항목 (출고시, 생산 중 등)
다음 열 머리글이있는 표/표에 보고서를 표시해야합니다. Apl 이름, Apl_Date 다음에 선체 프로덕션 이름을 나머지 열 제목으로 사용합니다. (선체 7이 결과 집합에 없으면 심지어 열을 얻지 못합니다.)
데이터의 경우 apl 이름을 나열하고 날짜를 입력 한 다음 나머지 열을 반복하고 상태를 채워야합니다 조인 테이블의 레코드에 대해 .appl과 선체가 조인 테이블에 연결되어 있지 않으면 "NA"로 셀을 채우십시오.
나는 이것을 여러 가지 방법으로 시도해 본 결과 현재 얻을 수 있습니다. 선체에 대한 열 머리글의 동적 목록, 내가 제대로에 걸쳐 루프에 데이터를 얻을 수있을 것 결코
Sample Data:
Apls Table
Id: 1, Name: X1-0000, Date: 1/1/2009
Id: 2, Name: BG-5480, Date: 2/22/2009
Id: 3, Name: HG-0000, Date: 2/27/2009
Hulls Table
Id: 1, Production_name: ProdA
Id: 2, Production_name: ProdB
Id: 3, Production_name: ProdC
Id: 4, Production_name: ProdD
AplsHulls Table
Id: 1, Apl_id: 1, Hull_id: 1, Status:Delivered
Id: 2, Apl_id: 1, Hull_id: 3, Status:Ordered
Id: 3, Apl_id: 2, Hull_id: 4, Status:Delivered
내가 이런 식으로 보여 테이블이 필요합니다.
APL | Date | ProdA | ProdC | ProdD
X1-0000 | 01/01/2009 | Delivered | Ordered | NA
BG-5480 | 02/22/2009 | NA | NA | Delivered
열 머리글은 해당 레코드가 조인 테이블에 없으므로 ProdB를 무시합니다. 또한 조인 테이블에있는 열의 경우 NA로 채 웁니다. 그러나 조인 테이블에 대한 연관이 없을 수 있습니다.
매우 혼란 스럽습니다.
select h.id, pname from hulls h join aplshulls on (h.id=hull_id)
당신에게 : 당신은이 같은 쿼리에 대해 신경 선체의 목록을 얻을 수
<?php
$aplToHullMap = array();
foreach($AplsHulls as $row)
{
$aplID = $row[ 'apl_id' ];
$hullID = $row[ 'hull_id' ];
$status = $row[ 'status' ];
if(isset($aplToHullMap[ $aplID ]))
$aplToHullMap[ $aplID ][ $hullID ] = $status;
else
$aplToHullMap[ $aplID ] = array($hullID => $status);
}
?>
<table>
<tr>
<th>Apl Name</th>
<th>Apl Date</th>
<?php
foreach($Hulls as $row)
echo("<th>" . $row[ 'production_name' ] . "</th>\r\n");
?>
</tr>
<?php
foreach($Apls as $row)
{
?>
<tr>
<td><?php echo($row[ 'name' ]); ?></td>
<td><?php echo($row[ 'date' ]); ?></td>
<?php
$map = $aplToHullMap[ $row[ 'id' ] ];
foreach($Hulls as $hull)
{
if(isset($map[ $hull[ 'id' ] ]))
$status = $map[ $hull[ 'id' ] ];
else
$status = 'NA';
echo("<td>" . $status . "</td>\r\n");
}
?>
</tr>
<?php
}
?>
</table>
일부 예제 코드는 테이블의 데이터를 도울 수 있습니다. – jcuenod
데이터에 대한 추가 정보를 제공해주십시오.귀하의 제목과 같은 배열 또는 귀하가 제안하는 질문과 같은 DB 테이블에 있습니까? 단어적인 설명 대신 예제 테이블이 도움이 될 것입니다. – defines
샘플 데이터 : Apls의 표 ID : 1 명 : X1-0000, 날짜 : 1/1/2009 ID : 2 명 : BG-5480, 날짜 : 2009년 2월 22일 번호 : 3, 이름 : HG-0000, 날짜 : 2009년 2월 27일 선체 표 ID : 1 Production_name : ProdA ID : 2 Production_name : ProdB ID : 3 Production_name : ProdC ID : 4 Production_name : ProdD AplsHulls 표 ID : 1 Apl_id : 1 Hull_id : 1 상태 : 전해 ID : 2 Apl_id : 1 Hull_id : 3, 상태 :,174 정렬ID : 3, Apl_id : 2, Hull_id : 4, 상태 : Delivered – SonnyBurnette