2016-10-19 6 views
0

1つのテーブル行に複数のレコードを表示するにはどうすればよいですか? は、私は良いじゃない言葉を使って説明するので、私は例を使用します:1つのテーブル行に複数のレコードを表示する方法

Work No. | Product No. | Product Name | Qty | Item No. | Item Name | Qty | 
-------------------------------------------------------------------------- 
W00001 | P0000001 | Product_1 | 6 | I000001 | Item_1 | 2 | 
     |    |    |  | I000002 | Item_2 | 2 | 
     |    |    |  | I000003 | Item_3 | 2 | 
-------------------------------------------------------------------------- 
                  Total : 6 | 
-------------------------------------------------------------------------- 
W00002 | P0000002 | Product_2 | 7 | I000001 | Item_1 | 3 | 
     |    |    |  | I000004 | Item_4 | 4 | 
-------------------------------------------------------------------------- 
                  Total : 7 | 
-------------------------------------------------------------------------- 

あなたが見ることができるように、製品は複数の項目から構成されています。これまでのところ、私は上記の例のように少なくすることができますが、私の質問は上記の例のような項目を表示する方法です。私は1つの行にアイテムを表示したい。どのようにPHPを使用してそれを表示するには?

+0

だけの提案::

あなたのコードはこのような何かを探すために必要*カンマ区切りとして少なくとも店あなたはカンマ区切り値を追加することで、データベースを悪用から*オフ – devpro

+0

手を正常化したいいけない場合。あなたはそれを望んでいません。 –

+0

mysqlを1つのテーブルに保存したいですか?または、mysqlに複数のテーブルがあり、そのようなPHPを使用して印刷したいだけですか? –

答えて

0

テーブルがすでに2つある場合:製品用とアイテム用の2つのテーブルがある場合は、製品をループスルーするだけで各製品ごとに必要なすべてのアイテムを入手して表示します。

$products = get_products_from_db(); //How you normal get products from db. 
foreach($products as $product) { 
    $items = get_items_by_product_from_db($product['id']); //get from db all items for a product. 
    //foreach product we will need a new row. 

    echo '<tr>'; 
    echo "<td>{$product['work_no']}</td>"; //and all the normal cells like this. 
    //for item no. we will create a cell and inside it we will foreach items. 
    echo "<td>"; 
    foreach($items as $item) { 
     echo $item['item_no'] . '<br/>';//Or how it's called in db. 
    } 
    echo "</td>"; 
    //Exact the same with name and quantity. 
    //For quantity also keep a counter so you can display the total 
    echo '</tr>'; 
    //After this row create a new tr to display the total. I think you know how to do this. 
} 
+0

Daniel、ありがとうございました... – Teddy

+0

while ()? – Teddy

+0

@Teddyもしあなたが簡単なら 'while 'も使うことができます。複雑さは同じです。 –

関連する問題