- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在本地的大学做我的学生工作,我们必须根据给定的主题创建整个网站。我选择“ parking 场”主题,然后卡住了。陷入困境,不知道去哪里寻找问题。我需要做的是从数据库中过滤给定的年份和月份数据,如下所示:
我的查询,对该表中的数据进行排序,如下所示:
SELECT COUNT(parking_time) AS "Amont", SUM(sum) AS "Sum"
FROM parking_info
GROUP BY MONTH(parking_time), YEAR(parking_time).
以及此查询的输出:
如您所见,用户应该从下拉列表中选择年份和月份,以选择特定月份来过滤 MySQL 查询中的数据。例如:如果用户从下拉列表 10 月中选择年 2013 和月,则它应该只为用户输出特定月份的信息,即金额 4/Sum 170。但就我而言,它不会输出任何内容(正如您在我的网页中看到的那样)。
基本上我有 functions.php 文件,其中包含所有计数、过滤器和 SQL 查询。此特定页面的 functions.php 文件如下所示:
<?php
function cleanFilterArray($filters) {
$new_filters = array();
if ($filters) {
foreach ($filters as $field => $data) {
if ($data != '%%') {
$new_filters[$field] = $data;
}
}
return $new_filters;
} else {
return false;
}
}
function get_months_in_LT()
{
$months = array();
$months[] = array(1, 'january');
$months[] = array(2, 'february');
$months[] = array(3, 'march');
$months[] = array(4, 'april');
$months[] = array(5, 'may');
$months[] = array(6, 'june');
$months[] = array(7, 'july');
$months[] = array(8, 'august');
$months[] = array(9, 'september');
$months[] = array(10, 'october');
$months[] = array(11, 'november');
$months[] = array(12, 'december');
return $months;
}
function get_month_in_LT($num)
{
$months = get_months_in_LT();
return $months[$num][1];
}
function get_month_report($filters) {
$where = null;
if ($filters) {
$filters = cleanFilterArray($filters);
foreach ($filters as $field => $data) {
if (!empty($data)) {
$where .= $field.' \''.$data.'\' AND ';
}
}
if ($where) {
$where = 'WHERE '.substr($where, 0, -5); //removes last 'AND' and adds a 'WHERE' to the begining
}
}
var_dump($where);
var_dump($filters);
$result = mysql_query('
SELECT COUNT(parking_time) AS "Amont", SUM(sum) AS "Sum"
FROM parking_info
GROUP BY MONTH(parking_time), YEAR(parking_time)
'.$where.'
');
$rows = array();
while ($row = mysql_fetch_row($result))
{
$rows[] = $row;
}
return $rows;
}
?>
我的实际页面包含所有 HTML 和所有其他内容,如下所示:
<?php
include_once 'functions.php';
if (isset($_GET['submit']))
{
$year = $_GET['year'];
$month = $_GET['month'];
}
else
{
$year = date('Y');
$month = date('m');
}
if (isset($_GET['submit']))
{
if (isset($year) && $year > (int) date('Y'))
{
$error = 'this years has not yet come!';
}
if (isset($month) && $month > (int) date('m'))
{
$error = 'this month has not yet come';
}
elseif (isset($year) && $year < 0)
{
$error = 'date cannot be negative';
}
elseif (isset($month) && ($month < 1 || $month > 12))
{
$error = 'not a month';
}
}
if (isset($_GET['submit']))
{
$year = $_GET['year'];
$month = $_GET['month'];
$filters = array(
"parking_time LIKE" => '%'.$year.'%',
"parking_time LIKE" => '%'.$month.'%'
);
}
include_once 'mysql.php';
if (isset($_GET['submit']) && !isset($error)){
$infos = get_month_report($filters);
}
$months = get_months_in_LT();
var_dump($infos);
?>
<?php include_once 'header.php' ?>
<h1>Month Report</h1>
<div id="main">
<p>How much per month was observed cars and what is the total amount of money collected</p>
<?php
if (isset($error))
{
echo "<p class=\"error\">Klaida: $error</p>";
}
?>
<form method="post">
<table border="1">
<tr>
<th>Year<span style="color:red">*</span></th>
<td><input type="text" name="year" value="<?php if (isset($year)) echo $year ?>" /></td>
</tr>
<tr>
<th>Month</th>
<td>
<select name="month" style="width:100%">
<?php
foreach ($months as $montha)
{
if (isset($month) && $month == $montha[0])
{
echo "<option value=\"$montha[0]\" selected=\"selected\">$montha[1]</option>";
}
else
{
echo "<option value=\"$montha[0]\">$montha[1]</option>";
}
}
?>
</select>
</td>
</tr>
<tr>
<td colspan="2" class="search"><button type="submit" name="submit" style="width:100%">Search</button></td>
</tr>
</table>
</form>
<br />
<br />
<?php if (isset($_GET['submit']) && sizeof($error) == 0): ?>
<table border="1">
<tr>
<th>Amount</th>
<th>Sum, LT</th>
</tr>
<?php
foreach ($infos as $info)
{
echo "<tr>";
echo "<td>$info[0]</td>";
echo "<td>$info[1]</td>";
echo "</tr>";
}
if (count($infos) == 0)
{
echo "<tr><td colspan=\"2\">Rezultatų nėra.</td></tr>";
}
?>
</table>
<?php endif; ?>
<br/>
<br/>
<br/>
<br/>
</div>
<?php include_once 'footer.php' ?>
希望有人能理解我真正需要什么,因为我只是卡住了,不知道为什么这个页面不输出任何内容。谢谢。
最佳答案
在查询中,您可以使用表列中的月份和年份,如下所示。
Month(parking_time) = $month and YEAR(parking_time) = $year
现在,在您要创建查询的文件中添加这些内容,而不是使用 like 进行比较。
关于PHP - 无法从 MySQL 数据库查询中按月份过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19889172/
场景 网站页面有一个带有分页、过滤、排序功能的表格 View 。 表中的数据是从REST API服务器获取的,数据包含数百万条记录。 数据库 REST API 服务器 Web 服务器 浏览器 问
我有一个表student,其中的列dte_date(日期)具有值(2019-01-01、2019-02-01、2019-03-01)。 .等) 条件: dte_date 列中没有重复值。 但 dte_
我有一些逻辑可以根据不活动的用户创建通知。我正在获取具有以下属性的用户列表。我想做的只是在部门有非 Activity 用户时触发我的创建通知方法。因此,给出下面的列表,基本上会创建 1 个通知,表示部
使用 GPS 开发跟踪应用程序。一切都很好,但有时由于封闭区域或恶劣天气,我得到的分数不准确。当您绘制它们时,它看起来不对,有很多跃点/跳跃。 我应该运行什么算法来过滤掉不良信号对我来说,这看起来像是
我正在尝试按变量类型过滤对象数组。节点是一个具有位置的对象,但以不同的方式定义——作为点、矢量或附件。这是一个代码: class Joint { var position:Position
我想做的是在向量上创建一个过滤器,以便它删除未通过谓词测试的元素;但不太确定我该怎么做。 我根据谓词评估输入向量中的每个元素,例如在我的代码中,is_even 仿函数在 device_vector 向
我是 Gremlin 的新手,我正在使用 Gremlin 3.0.2 和 Stardog 5.0。我编写此查询是为了找出 schema.org 本体中两个实体之间的路径。以下是输出 - gremlin
考虑以下示例数据表, dt 30 的那一行需要去 - 或者如果其中两行 > 30相隔几秒钟,删除所有 3 个。然而 ,当我们有 4 行或更多行时,我们需要删除时间差 > 30 没有另一对 < 30
我正在考虑使用 ZeroMQ,并尝试了一些示例。但是,我无法验证 ZeroMQ 是否支持一些重要的要求。我希望你能帮助我。 我将使用这个简单的场景来问我的问题: 出版商(例如交易所)提供(大量)股票的
我需要从我的查询中过滤掉大量的对象。目前,它正在抓取类中的所有对象,我想将其过滤为查询字符串中的相关对象。我怎样才能做到这一点?当我尝试时,我收到一个属性错误说明 ''QuerySet' object
如何在 Prometheus 查询中添加标签过滤器? kube_pod_info kube_pod_info{created_by_kind="ReplicaSet",created_by_name=
我有包含字符串的列的数据框,并希望过滤掉包含某些字符串以外的任何内容的所有行。考虑下面的简化示例: string % dplyr::filter(stringr::str_detect(string,
我有以下数据框,其中包含多行的角度变化值: 'data.frame': 712801 obs. of 4 variables: $ time_passed: int 1 2 3 4 5 6
我有一个 BehaviorSubject我希望能够filter ,但要保持新订阅者在订阅时始终获得一个值的行为主题式质量,即使最后发出的值被过滤掉。有没有一种简洁的方法可以使用 rxjs 的内置函数来
我有一个 RSS 提要,每天输出大约 100 篇文章。我希望过滤它以仅包含更受欢迎的链接,也许将其过滤到 50 个或更少。回到当天,我相信您可以使用“postrank”来做到这一点,但在谷歌收购后现已
我有这样一个重复的xml树- this is a sample xml file yellowred blue greyredblue 如您所见,每个项目可以具有不同数量的颜色标签
我以为我在 Haskell 学习中一帆风顺,直到... 我有一个 [[Int]] tiles = [[1,0,0] ,[0,1,0] ,[0,1,0]
我在使用 Knockout.js 过滤可观察数组时遇到问题 我的js: 包含数据的数组 var docListData = [ { name: "Article Name 1", info:
我在 mongoDB 中有这个架构: var CostSchema = new Schema({ item: String, value: Number }); var Attachm
给定一个数据框“foo”,我如何才能只选择“foo”中的那些行,例如foo$location =“那里”? foo = data.frame(location = c("here", "there",
我是一名优秀的程序员,十分优秀!