0

我在html中有三个输入框:

<input type='text' name='source' />
<input type='text' name='target' />
<input type='text' name='date' />
<input type='submit' name='submit' value='go' />

在此,我成功地从 mysql 检索了源数据和目标数据,但如果没有提供日期,那么我必须从数据库中检索最近 7 天的数据。我可以试试这个,并为选择查询创建了一个函数,但使用了七个变量并以表格形式构造它们。问题是我无法为所有这些设计合适的逻辑,

  • 如果未提供日期,则检索源的 7 天数据

  • 如果未提供日期,则为目标的 7 天数据

我可以尝试使用 if 和 elseif 条件,例如:

if (isset($_POST['source']) && empty($_POST['target'] && empty($_POST['date'] ) {

  //fired query function seven times with different dates through pass a query
  $init->get_result( $_POST['source'], date('Y-m-d') );

}

select_query 的函数:

function get_result() {
   $query = "select count(*) from tablename where column=$_POST['source']";
   $this->select_query($query); //from there select query function called
}

function select_query($post, $date) {

$res = $mysqli->query($query);
$row->$res->fetch_row();

return $row[0];

}

如果提供日期,则检索特定日期的数据,这一切都做得很好,但逻辑不好。我也使用表单操作作为 php_self 在同一页面上获取结果,但是当我在变量中使用结果并在 html 表中显示时,我必须给出一个条件,即在指定发布数据结果后显示,这没有完成。这很长,但问题对我来说非常关键。请看看这个。

更新:我在这段代码中从 php 中的数据库获取值:

if ( !empty( $_POST['source'] ) && empty( $_POST['target'] ) && empty( $_POST['date'] ) ) {

        echo '<table border=1>';

        echo '<tr>' . '<td>' ."<input type=submit name='tod' value=" . date( 'Y-m-d' )." >" . '</td>' . '<td>' . $adinit->get_req_data( $_POST['source'], date( 'Y-m-d' ) ) . '</td>' . '</tr>';
}

我在 echo 语句中创建了一个输入按钮,它显示日期。我正在尝试在按钮上创建一个事件,该事件显示数据库中的另一个表格数据。我怎样才能做到这一点?

4

1 回答 1

0

您可以使用strtotime()功能:

if (isset($_POST['source']) && empty($_POST['target'] && empty($_POST['date'] ) {
    $time = strtotime('-7 days'); // or strtotime('-1 week') works too
    //fired query function seven times with different dates through pass a query
    $init->select_query( $_POST['source'], date('Y-m-d', $time) );
}

附录:为了使用一天的时间间隔,您必须将查询更改为以下内容:

get_req_data($source, $date) { 
    $dateMax = date('Y-m-d', strtotime($date) + (60 * 60 * 24)); // + 1 days
    $query = "Select count(*) from tablename where time >= '$date' AND time <= '$dateMax'";
    ...
}

这仅在time列是日期时间/时间戳类型时才有效。

于 2012-11-25T10:03:52.097 回答