php更改具有相同值的行颜色

时间:2017-01-08 07:29:00

标签: php

我有一个页面显示从Excel文件导入MySQL数据库中的一些数据 enter image description here

我想在col" Billing Doc"中更改具有相同值(分组)的行的背景颜色。喜欢这张图片:

enter image description here

这是我的PHP代码的一部分:

<form action="uploadExcel.php" method="POST" enctype="multipart/form-data">
    <div>
        <input type="file" name="file">
        <input type= "submit" value ="Upload" >
    </div>
</form>
<table width="100%" border="1" cellpadding="5">
        <tr>
            <th>ID</th>
            <th>Billing Doc</th>
            <th>Invoice Date</th>
            <th>Ordered Parts</th>
            <th>Shipped Parts</th>
            <th>Qty</th>
            <th>F</th>
            <th>G</th>
            <th>Amount</th>
            <th>Delivery No</th>
            <th>D/O Creation Date</th>
            <th>Description</th>
            <th>P/O No</th>
            <th>Ship-to</th>
            <th>Tracking No</th>
            <th>Obs</th>
        </tr>
<?php
while ($row = $result->fetch_object()) {
    if (substr( $row->tracking_no, 0, 3 ) === "534") {
        $row->tracking_no = "<a href='http://www.dhl.be/en/express/tracking.html?pageToInclude=RESULTS&AWB=$row->tracking_no&type=fasttrack' title='DHL'>$row->tracking_no</a>";
    }
    if (substr( $row->tracking_no, 0, 3 ) === "730") {
        $row->tracking_no = "<a href='http://www.tnt.com/webtracker/tracker.do?navigation=1&respLang=en&respCountry=gb&cons=$row->tracking_no' title='TNT'>$row->tracking_no</a>";
    }
    $colour = '';
    echo '
        <tr style="background-color:' .$colour. '">
            <td>' . $row->id_factura . '</td>
            <td>' . $row->billing_doc . '</td>
            <td>' . $row->invoice_date . '</td>
            <td>' . $row->ordered_parts . '</td>
            <td>' . $row->shipped_parts . '</td>
            <td>' . $row->qty . '</td>
            <td>' . number_format($row->F, 2) . '</td>
            <td>' . number_format($row->G, 2) . '</td>
            <td>' . number_format($row->amount, 2) . '</td>
            <td>' . $row->delivery_no . '</td>
            <td>' . $row->d_o_creation_date . '</td>
            <td>' . $row->description . '</td>
            <td>' . $row->po_no . '</td>
            <td>' . $row->ship_to . '</td>
            <td>' . $row->tracking_no . '</td>
            <td>' . $row->obs . '</td>
        </tr>
    ';
}
?>
</table>

2 个答案:

答案 0 :(得分:0)

如果billing_doc值相同,您可以使用第一个$billing = $row->billing_doc值创建一个变量:if else并使用$billing_doc来回显相同的颜色行。 else将声明新颜色变量并回显该颜色的行。

答案 1 :(得分:0)

似乎唯一需要考虑的变量是Billing Doc,如果是这样,在你的while循环中使用数组将记帐ID存储为密钥,然后检查每个值以查看密钥是否已经存在然后打印颜色你想要:

$billing_docs = [];

while ($row = $result->fetch_object()) {

  echo '<tr style="background-color:' . (array_key_exists($row->id_factura, $billing_docs) ? '#666' : '#DDD') . '">...';
  $billing_docs[$row->id_factura] = '';
}