Mysql用PHP生成报告(DateTime数据类型)

时间:2018-12-01 07:31:27

标签: php mysql

我想基于每年/每月生成一个报告,用户可以在下拉菜单中选择年份。然后,来自mysql的数据将以表格格式显示。

这是我遇到的错误:

Error

这些是数据库中的变量:

Variables in database

这是我的代码:

        <form action="" method="POST">
         Select Year:<select name="sortyear" id="sortyear">
                         <option value="2018">2018</option>
                         <option value="2019">2019</option>
                         <option value="2020">2020</option>
                         <option value="2021">2021</option>
                     </select>

        <?php
        $db = mysqli_connect('localhost','root','','customercaremodule');
        date_default_timezone_set('Asia/Kuala_Lumpur');

        if ($db->connect_error) {
            die("Connection failed: " . $db->connect_error);
        }
        $sql = "SELECT first_name, last_name, email,  message, FC_DateTime FROM fbcomplain WHERE (YEAR(timestamp) = 2018)";
        $result = mysqli_query($db,$sql);
        while($row11 = mysqli_fetch_array($result))
           {
               $first_name= $row11['first_name'].'<br>';
               $last_name = $row11['last_name'].'<br>';
               $email = $row11['email'].'<br>';
               $message = $row11['message'].'<br>';
           }

        $sortyear = $_REQUEST['sortyear'];
?>

更新

现在,我希望显示基于所选年份的数据行,该怎么办?

1 个答案:

答案 0 :(得分:2)

查询失败,因此$result等于false而不是有效的mysql result,这就是mysqli_fetch_array($result)产生错误的原因。

根据WHERE (YEAR(timestamp) = 2018)中的查询和表结构,没有timestamp列,这就是失败的原因。

我建议改用WHERE (YEAR(FC_DateTime) = 2018)