2012-09-04 7 views
-1

나는 3 개의 다른 mysql 테이블, 클라이언트, 주문에서 내용을 표시하려고합니다. HTML 구조와 제품 :치수 배열 - HTML로 3 테이블

    Product 1  Product 2  Product 3 ..... 
client 1  quantityOrder  quantityOrder  - 
client 2   -   quantityOrder quantityOrder 
client 3  quantityOrder  -     - 

내가 다차원 배열을 사용하고 있습니다 만, 어떻게 든이 작동하지 않습니다. PHP two dimensional array into HTML

어떤 생각 :

이 게시물의 지침뿐만 아니라 행운을 따르도록 시도?

감사 알렉스

+0

에 오신 것을 환영에 StackOverflow에. 귀하의 코드에 아무런 문제가 보이지 않습니다. 당신이 그것을 보여주지 않았기 때문에 ... _ "편집"을 클릭하고 귀하의 코드 (또는 관련 부분)를 귀하의 질문에 추가하십시오. 이 경우 "어떻게 든 작동하지 않는다"는 것은 무엇을 의미합니까? 아무 반응이 없습니다? 잘못된 일이 발생합니까? 그것은 거의 작동하지만 당신이 원하는 것을하지 않습니다? – nnnnnn

답변

0

전혀 배열을 사용하지 마십시오. 당신은 bidimensional 배열을 직접 테이블을 구축 할 수 있습니다 :

SELECT client.id, client.name, product.name as productname, SUM(order.quantity) AS qty 
    FROM client CROSS JOIN product 
     LEFT JOIN order ON (order.product_id = product.id AND order.client_id = client.id) 
    GROUP BY client.id, product.id ORDER BY client.name, product.code; 

이 출력됩니다 그 (클라이언트, 제품) 사이에 가입 없음이있는 경우 null의 가능성이있는 각 클라이언트 및 제품에 대한 세포 및 주문.

그럼 그냥 PHP에서 테이블을 반복 할 수 있습니다 (물론 당신은 키에 대한 클라이언트 및 제품 ID를 사용하여 다차원 배열에 저장 수) :

print "<table>"; 
$customer_id = -1; 
while($tuple = SQLFetchTuple($exec)) 
{ 
    if ($tuple['id'] != $customer_id) 
    { 
     if (-1 != $customer_id) 
      print "</tr>"; // Close previous row 
     print "<tr><td>{$tuple['name']</td>"; // Output row header 
     $customer_id = $tuple['id']; 
    } 
    if ($tuple['qty']) 
     print "<td>{$tuple['qty']</td>"; 
    else 
     print "<td>-</td>"; 
} 
print "</table>";