【问题标题】:Adding DateDiff column to PHP table using MySQLI使用 MySQLI 将 DateDiff 列添加到 PHP 表
【发布时间】:2015-11-06 19:08:53
【问题描述】:

我正在尝试向我的数据库表中添加一列,以显示时间戳和当前日期之间的差异。我尝试使用 DateDiff 创建另一个查询,但我不确定我做错了什么。 有人可以帮忙吗?

我的代码如下。

    <?php
            $result = mysqli_query($con,"SELECT * FROM pokemon ORDER BY stats");

            echo "<table border='1'>
            <tr>
            <th>Pokemon Name</th>
            <th>Type One</th>
            <th>Type Two</th>
            <th>Move One</th>
            <th>Move Two</th>
            <th>Move Three</th>
            <th>Move Four</th>
            <th>Stats</th>
            <th>ID</th>
            <th>Date Added</th>
            <th>Days on File</th>
            </tr>";

            while($row = mysqli_fetch_array($result))
            {
                $query = "SELECT DATEDIFF(CURDATE, $row[dAdded])FROM pokemon AS days";
                $date =  mysqli_query($con, $query);


            echo "<tr>";
            echo "<td>" . $row['pName'] . "</td>";
            echo "<td>" . $row['type1'] . "</td>";
            echo "<td>" . $row['type2'] . "</td>";
            echo "<td>" . $row['move1'] . "</td>";
            echo "<td>" . $row['move2'] . "</td>";
            echo "<td>" . $row['move3'] . "</td>";
            echo "<td>" . $row['move4'] . "</td>";
            echo "<td>" . $row['stats'] . "</td>";
            echo "<td>" . $row['ID'] . "</td>";
            echo "<td>" . $row['dAdded'] . "</td>";
            echo "<td>" . $date . "days</td>";
            echo "</tr>";
            }
            echo "</table>";
        ?>

【问题讨论】:

    标签: php mysql mysqli datediff


    【解决方案1】:

    您可以将 datediff 添加到原始查询中。您还需要使用 fetch_assoc 而不是 fetch_array,以便可以引用 $row 中的字段名称。

    $result = mysqli_query($con,"SELECT *, DATEDIFF(CURDATE, dAdded) as dDate FROM pokemon ORDER BY stats");
    while($row = mysqli_fetch_assoc($result))
    {
    
    }
    

    【讨论】:

    • 这是一个很好的补充和更少的开销:)
    【解决方案2】:

    我怀疑问题出在您的DATEDIFF() 函数中,更具体地说是$row[dAdded]。这不应该是带引号的$row['dAdded'] 吗?而且我相信CURDATE 需要像CURDATE() 这样的括号。

    DATEDIFF(CURDATE(), $row['dAdded'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      相关资源
      最近更新 更多