当减去另外两个时,改变一个Mysql变量的值

时间:2015-10-22 20:40:14

标签: javascript php jquery html mysql

我不会放弃确定怎么说这个。我有一个数据库,存储与客户发票有关的数据。在数据库中是客户“日期”(程序数据)他们的“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>

我将如何完成此操作?我被困住了,我甚至没有开始。

2 个答案:

答案 0 :(得分:1)

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

为什么不从数据库中完全删除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表达式创建数据库视图。

答案 1 :(得分:0)

我认为这里最好的方法是使用MySQL DATEDIFF函数动态计算老化。

您的查询会看起来像(假设您的表名为Invoices):

    SELECT id, 
           Rep, 
           Date, 
           Name, 
           P_O, 
           Due_Date, 
           Terms, 
           DATEDIFF(NOW(), Due_Date) AS Aging, 
           Open_Balance
    FROM Invoices;

如果您想要在众多查询中引用Aging值,我倾向于在数据库中使用Aging逻辑创建View,因为它可能会事情更易于维护,更容易编辑等。