我不放弃如何措辞。我有一个数据库,用于存储与客户发票有关的数据。在数据库中是客户“ Date”(过程数据),“ Due_Date”(应付款的日期)和“ Aging”(应过期的天数)

我想做的是获取其“ Due_Date”并减去当前日期,然后更改其老化值。我希望在按下“刷新”按钮时完成此操作,因为我使用php将数据库添加到了表中。

Home.php

<button class="btn btn-primary" id="RefreshBtn">Refresh</button>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    <table class="table table-bordered table-striped table-responsive sortable" id="MyTable">
                        <tr class="header">
                            <td>id</td>
                            <td>Rep</td>
                            <td>Date</td>
                            <td>Name</td>
                            <td>P_O</td>
                            <td>Due Date</td>
                            <td>Terms</td>
                            <td>Aging</td>
                            <td>Open Balance</td>
                            <td>remove</td>
                        </tr>
                        <?php
                            while($row = mysql_fetch_array($query)) {

                                $className ="";
                                if ($row['Aging'] >= 45)
                                {
                                    $className="danger";
                                }
                                else if($row['Aging'] >= 25 && $row['Aging'] <= 44)
                                {
                                    $className="warning";
                                }

                                echo "<tr class='$className'>";
                                echo "<td>".$row['id']."</td>";
                                echo "<td>".$row['Rep']."</td>";
                                echo "<td>".$row['Date']."</td>";
                                echo "<td>".$row['Name']."</td>";
                                echo "<td>".$row['P_O']."</td>";
                                echo "<td>".$row['Due_Date']."</td>";
                                echo "<td>".$row['Terms']."</td>";
                                echo "<td>".$row['Aging']."</td>";
                                echo "<td>".$row['Open_Balance']."</td>";
                                echo "<td><a href='deletepage.php?id=" .$row['id']. "' value='" .$row['id']. "' class='btn btn-success'> Paid</a></td>";

                            }
                        ?>
                    </table>


我将如何实现这一目标?我被困住了,甚至还没有开始。

最佳答案

当这是一个甚至不需要存储的计算字段时,我也不会遇到所有麻烦。

为什么不从数据库中完全删除Aging字段,并通过查询来计算其值(请注意DATEDIFF):

 $query = mysql_query("SELECT id, rep, Date, Name, P_O, Due_Date, " .
   "Terms, GREATEST(DATEDIFF(NOW(), Due_Date), 0) AS Aging, " .
   "Open_Balance from Book1");


这样,只要刷新页面,SQL就会实时进行计算,从而为您提供Aging值,而无需更新。

如果您需要Aging字段在数据库中进行更多处理,请考虑使用包含此Aging表达式的数据库视图。

09-15 12:17