1

必要なディスプレイ ここに画像の説明を入力してください

ここに私のコードと表示

<table width="100%" cellspacing="0" cellpadding="0" summary="" id="box-table-a">
        <thead>
          <tr>
            <th width="" scope="col"><strong>Item Description</strong></th>
            <th scope="col" style="text-align:center;"><strong>Quantity</strong></th>
            <th width="350" scope="col"><strong>Supplier Name</strong></th>
            <th scope="col" style="text-align:center;"><strong>Unit Price Rs.</strong></th>
            <th scope="col" style="text-align:center;"><strong>VAT Price Rs.</strong></th>
            <th width="100" scope="col"><strong>Total Price Rs.</strong></th>
          </tr>
        </thead>
        <tbody>

          <?php 


          $get_data =mysql_query("SELECT supplier_add_quotaion_form.quotaion_request_id,supplier_add_quotaion_form.supplier_id,supplier_add_quotaion_form.supplier_add_quotaion_id,supplier_add_quotaion_request_item.* FROM supplier_add_quotaion_request_item,supplier_add_quotaion_form 
WHERE supplier_add_quotaion_form.supplier_add_quotaion_id=supplier_add_quotaion_request_item.supplier_add_quotaion_id AND supplier_add_quotaion_form.quotaion_request_id='$id' ORDER BY quotation_item_id");


            while($row = mysql_fetch_array($get_data)){ 
                $quotaion_request_id = $row['quotaion_request_id'];
                $supplier_add_quotaion_id = $row['supplier_add_quotaion_id'];
                $supplier_id = $row['supplier_id'];
                $net_item_value = $row['net_item_value'];
                $vat_item_value = $row['vat_item_value'];
                $total_value = $row['total_value'];
                $quotation_item_id = $row['quotation_item_id'];


                 $get_count = mysql_query("SELECT quotation_item_id FROM supplier_add_quotaion_request_item WHERE quotation_item_id='$quotation_item_id'"); 

                $count = mysql_num_rows($get_count);


                $get_quantity = mysql_query("SELECT quantity_required,item_description FROM clerk_add_quotaion_request_item WHERE quotation_item_id='$quotation_item_id'"); 

                    while($rowB = mysql_fetch_array($get_quantity)){ 
                        $quantity_required = $rowB['quantity_required'];
                        $item_description = $rowB['item_description'];
                    }



            ?>

          <tr>
            <td><?php echo $item_description; ?></td>
            <td align="center"><?php echo $quantity_required; ?></td>
            <td><?php echo $supplier_id; ?></td>
            <td align="center"><?php echo $net_item_value; ?></td>
            <td align="center"><?php echo $vat_item_value; ?></td>
            <td align="center"><?php echo $total_value; ?></td>
          </tr>

          <?php
            }
        ?>
        </tbody>

ここに画像の説明を入力してください

  • 重複する説明がそれらを行スパンする必要がある場合、または最初の画像として表示を表示する必要がある方法は何でも..私はそれに従ってカウントを取得してから行スパンを取得しようとしますが、必要な表示を取得できない場合は、余分なセルを削除する方法がわかりません
  • 重複する行数は固定されていません。例は最初の画像のみを示しています。1つの説明に対して1〜7の範囲で重複する可能性があります(1つのアイテムに対して7つのサプライヤーが入札できます)

Supplier_add_quotaion_formテーブル構造

サプライヤー_add_quotaion_request_item

Supplier_add_quotaion_request_itemテーブル構造

Supplier_add_quotaion_formテーブル構造

clerk_add_quotaion_request_item構造

ここに画像の説明を入力してください

4

3 に答える 3

0

ワンパスでこれを行うことができます、これを試してください

<?php 
          $get_data =mysql_query("...");

          $last_quotaion_request_id = -1;
            while($row = mysql_fetch_array($get_data)){ 
                $quotaion_request_id = $row['quotaion_request_id'];
                $supplier_add_quotaion_id = $row['supplier_add_quotaion_id'];
                $supplier_id = $row['supplier_id'];
                $net_item_value = $row['net_item_value'];
                $vat_item_value = $row['vat_item_value'];
                $total_value = $row['total_value'];
                $quotation_item_id = $row['quotation_item_id'];


                 $get_count = mysql_query("SELECT quotation_item_id FROM supplier_add_quotaion_request_item WHERE quotation_item_id='$quotation_item_id'"); 

                $count = mysql_num_rows($get_count);


                $get_quantity = mysql_query("SELECT quantity_required,item_description FROM clerk_add_quotaion_request_item WHERE quotation_item_id='$quotation_item_id'"); 

                    while($rowB = mysql_fetch_array($get_quantity)){ 
                        $quantity_required = $rowB['quantity_required'];
                        $item_description = $rowB['item_description'];
                    }



            ?>

          <tr>
            <?php if($last_quotaion_request_id != $quotaion_request_id){ ?>
            <td rowspan="<?php echo $count; ?>"><?php echo $item_description; ?></td>
            <td rowspan="<?php echo $count; ?>" align="center"><?php echo $quantity_required; ?></td>
            <?php } ?>
            <td><?php echo $supplier_id; ?></td>
            <td align="center"><?php echo $net_item_value; ?></td>
            <td align="center"><?php echo $vat_item_value; ?></td>
            <td align="center"><?php echo $total_value; ?></td>
          </tr>

          <?php
            $last_quotaion_request_id = $quotaion_request_id;
            }
        ?>
于 2012-12-13T15:55:11.130 に答える
0

おそらく、クエリ結果を構造化された配列に丸呑みする方がはるかに簡単です。そこから、rowspans を実行するために必要なカウントを簡単に取得できます。

$data = array();
while ($row = mysql_fetch_assoc($result)) {
   $data[$row['item_description']][] = $row;
}

echo "start your table here";
foreach($data as $description => $items) {
    echo "<tr><td rowspan=" . count($items) . ">";
    foreach($items as $item) {
        output item data here
    }
}

これはそのままでは機能しませんが、どうすればよいかがわかります。

于 2012-12-13T15:46:26.140 に答える
0

使用しているテーブルの構造を変更する必要があります。私の推測によると、私は提案をしています。アイテムの説明をテーブルに、見積もりの​​詳細を別のテーブルに保持します。また、データのフェッチ中に、group by sql コマンドを使用してフェッチできます。

item テーブルは次のようになります。

 1. id
 2. desc
 3. clicks

見積もり表はこのようなものかもしれません

 1. id
 2. item_id
 3. supplier
 4. quantity
 5. vat
 6. price

于 2012-12-13T15:59:18.647 に答える