【问题标题】:Query specific data from sqlite database with php使用 php 从 sqlite 数据库中查询特定数据
【发布时间】:2018-08-07 16:46:45
【问题描述】:

您好,我正在使用 sqlite 数据库来管理我构建的系统(用 php 和 html 编写)上的预订。我设法连接到数据库并运行一个简单的计数查询(见下面的代码)。但是,我发现很难执行允许我选择两个日期之间的预订的查询,即(2018 年 2 月 20 日和 2018 年 2 月 25 日)。为了可视化,我还附上了我的数据库的屏幕截图。

计数查询代码:

<?php
$db = new PDO('sqlite:daypilot.sqlite');

$query = 'SELECT count(*) FROM events;';

$result = $db->query($query);

$data = $result->fetch(PDO::FETCH_ASSOC);

echo "There are {$data['count(*)']} bookings made\n";
?>

【问题讨论】:

  • 看起来你的截图没有成功。
  • 好吧,你没有尝试:SELECT count(*) FROM events WHERE some_date BETWEEN '2018-02-20' AND '2018-02-25'
  • 1 汤姆 T 2018-02-23T07:00:00 2018-02-23T08:00:00 1
  • 这是一个示例数据行,字段如下...id, name, start, end, resource_id
  • 帮助将不胜感激,因为它是这个特定项目的最后一步

标签: php sqlite


【解决方案1】:

由于您将向查询传递输入,因此您需要使用准备好的语句,而不仅仅是query()。看起来您的 events 表有两个日期,因此以下查询应捕获与指定日期范围重叠的所有事件。

$start = '2018-02-20';
$end = '2018-02-25';

$sql = 'SELECT * FROM events WHERE `end` > ? AND `start` < ?';
$stmt = $db->prepare($sql);
$stmt->execute([$start, $end]);
$events = $stmt->fetchAll();

foreach ($events as $event) {
    var_dump($event);  // output with your desired formatting here
}

【讨论】:

  • 感谢此查询已执行,没有任何错误。您会推荐某种表格来显示结果吗?
  • 这真的取决于你想要它的外观和你想用它做什么。 HTML 表格通常适合显示数据库中的行,但拥有一堆 div 也同样有效。如果您要显示大量数据,表格可能会很有利,因为您可以使用 datatables.net 之类的东西轻松使其可排序/可过滤/等。
  • 你能推荐一个表格格式吗,因为这是我需要的,我很困惑,但是在这方面该怎么做!!
  • 我如何实现 datatables.net 格式看起来很流畅
  • 这是一个如何输出表格的基本示例:stackoverflow.com/questions/2465046/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多