只选择时间不多的记录

6za6bjd0  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(177)

我正在做一个学校的项目,在那里我必须做一个todo网络应用程序。现在我有一个小问题。我需要得到的记录,正在运行的时间(想想20%的整个任务离开)。现在,我正在寻找一个用php或sql语句的解决方案,用它我只能检索那些记录。
用于将来的任务

function getToekomstig($mysqli) {
  $user_id      = $_SESSION["id"];
  $currentDate  = date("Y-m-d");
  $sql          = "SELECT * FROM tasks WHERE user_id='$user_id' AND '$currentDate' < start_date";
  $result       = $mysqli->query($sql);

  if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

      ?>
      <li class="list-group-item">
        <span class="material-icons listicon">place</span>
        <h4 class="title"><?php echo $row["task_name"]; ?><?php repeatButton($row["repeat_patern"]); ?></h4>
        <br>
        <?php timeDate($row["start_date"], $row["end_date"], $row["start_time"], $row["end_time"]); ?>
        <div class="actions">
          <?php editLink( $user_id, $row["task_id"] ) ?>
          <?php deleteLink( $user_id, $row["task_id"], $row["task_name"] ) ?>
        </div>
      </li>
      <?php

    }
  } else {
    echo "Er zijn geen taken gevonden";
  }
}

对于当前正在进行的任务,我使用

function getNuBezig($mysqli) {
  $user_id      = $_SESSION["id"];
  $currentDate  = date("Y-m-d");
  $sql          = "SELECT * FROM tasks WHERE user_id='$user_id' AND '$currentDate' between start_date and end_date";
  $result       = $mysqli->query($sql);

  if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {

      ?>
      <li class="list-group-item">
        <span class="material-icons listicon">place</span>
        <h4 class="title"><?php echo $row["task_name"]; ?><?php repeatButton($row["repeat_patern"]); ?></h4>
        <br>
        <?php timeDate($row["start_date"], $row["end_date"], $row["start_time"], $row["end_time"]); ?>
        <div class="actions">
          <?php editLink( $user_id, $row["task_id"] ) ?>
          <?php deleteLink( $user_id, $row["task_id"], $row["task_name"] ) ?>
        </div>
      </li>
      <?php

    }
  } else {
    echo "Er zijn geen taken gevonden";
  }

}

所以现在我需要一个只检索即将完成的任务的语句或函数。我添加了一个代码和应用程序的屏幕截图来澄清一下。
我希望有人能帮我(这是我第一次使用stackoverflow(如果我做错了,很抱歉)
截图appscreenshot代码

w3nuxt5m

w3nuxt5m1#

没有测试过,但像这样的东西可以帮上忙。

SELECT * 
 FROM tasks 
WHERE user_id='$user_id' AND '$currentDate' between start_date and end_date
And timestampadd(second,
                 0.8*(unix_timestamp(end_date) - unix_timestamp(start_date)), 
                 start_date) 
    > '$currentDate'

相关问题