SQL 和 PHP 过滤器

2024-03-05

我有一个包含模型年份 from 和模型年份 to 的 SQL 表,在过滤器中我只需要选择一个参数年份,并且我想获取该年份间隙中的所有模型。

<?php 

    $make= $_POST['make'];
    $model= $_POST['model'];
    $from= $_POST['year'];
    if(!empty($make)){$mysql="and `make`='$make'";}
    if(!empty($model)){$mysql.=" and `model`='$model'";}
    if(!empty($from)){$mysql.=" and `from`='$from'";}
    $spec=$mysqli->query("SELECT * FROM `cars` WHERE (from <= to AND to>= 
    from) AND id!='' $mysql ");
    while($r = $spec->fetch_object()){
    echo "$r->id $r->make $r->model $r->from";
    echo"</br>";
?>

通过这个代码我只能得到一年。如何获取所有型号的年份(包括起始日期和终止日期)? (例如:如果我选择 Audi 100 1990,我需要获得 1990 年生产的所有 Audi 100)。看一下我的 sql 表示例。


似乎您没有提出完整的请求,但您应该能够对此做一些事情:

WHERE
    $year >= `from`
    AND $year <= coalesce(`to`, 9999)

The coalesce()如果您没有to日期,但改为 NULL(仍在生产中)。


这是完整版:(因为我实在受不了mysqli_*函数,以及它们不太适合/不安全用于此用例 http://www.pontikis.net/blog/dynamically-bind_param-array-mysqli,这是一个PDO解决方案)

<?php
    // DB connect
try {
    $db = new PDO('mysql:host=localhost;dbname=DB_name', 'username', 'password');
        // output as object
    $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); 
        // error SQL as object
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    $db->exec("SET CHARACTER SET utf8");

} catch (Exception $e) {
    echo '<strong>'.$e->getMessage().'</strong><br />'."\n";
}
    // default parameters
$param = array();
$sql = "SELECT * FROM `cars` WHERE `id` != '' ";

if(!empty($_POST['make'])){
    $param[':make'] = $_POST['make'];
    $sql .= 'AND `make` = :make ';
}

if(!empty($_POST['model'])){
    $param[':model'] = $_POST['model'];
    $sql .= 'AND `model` = :model ';
}

if(!empty($_POST['from'])){
    $param[':from'] = $_POST['from'];
    $sql .= 'AND :from >= coalesce(`from`, 0) AND :from <= coalesce(`to`, 9999) ';
}

    // we prepare our request
$stmt = $db->prepare($sql);
    // we execute with our parameters
$stmt->execute($param);

while($r = $stmt->fetch()){
    echo $r->id.' - '.$r->make.' - '.$r->model.' - '.$r->from;
    echo"</br>";
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL 和 PHP 过滤器 的相关文章

  • 随着时间的推移累积(不重叠)——技术?

    我正在尝试找到一种更好的方法来制作水晶报告 其他人的 按组添加不重叠的时间 这显然是一个古老的问题 有没有一种技术可以得到 调整每条记录的 开始 结束 时间 以消除共同 重叠时间 亚组内 使用直接 SQL 尽管我发现我可以执行 CTE 假设
  • MySQL:@@ 是什么意思?

    我正在阅读本页上的 MySQL 文档 http dev mysql com doc refman 5 1 en set statement html http dev mysql com doc refman 5 1 en set stat
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 条件触发器的Django迁移sql

    我想创建一个触发器 仅在满足条件时插入表 我尝试过使用 IF BEGIN END 和 WHERE 的各种组合 但 Django 每次都会返回 SQL 语法错误 这里 type user id指的是触发该事件的人 user id指的是接收到通
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • 在 Yii 的标准中如何获得计数 (*)

    我正在尝试构建一个具有以下内容的查询group by属性 我正在尝试得到id和count它一直告诉我count is invalid列名 我怎样才能得到count来自group by询问 工作有别名 伊伊 1 1 11 其他不及格 crit
  • PHP 扩展开发入门 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请推荐有关 PHP 低 级 modules 编程接口的帮助文章或教程 搜索我的书签 我发现的唯一链接是
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • 基本的多对多sql选择查询

    我认为这应该很容易 但它却在逃避我 我的帐户和帐户组之间存在多对多关系 一个帐户可以位于零个或多个组中 因此我使用标准连接表 Accounts ID BankName AcctNumber Balance AccountGroups ID
  • PHP print_r() 中 _r 的含义是什么?

    我见过这个答案 https stackoverflow com questions 13103410 what does r suffix mean就这样 但我不确定它对于 PHP 是否相同 如果是 可重入的含义是什么 From PHP n
  • 默认情况下在sql日期时间列中插入null/空值

    如何在 SQL Server 中创建一个表 默认日期时间为空 而不是1900 01 01 00 00 00 000我得到了 我的意思是 如果没有插入值 则默认值应该为 null 空等 如果没有插入值 默认值应该是null empty 在表定
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • 重用 t-sql 游标的起始位置?

    我正在开发一个在临时表上使用游标的存储过程 我已经阅读了一些关于为什么不需要游标的内容 但在这种情况下我相信我仍然需要使用游标 在我的过程中 我需要遍历表的行两次 声明游标后 已经单步执行临时表并关闭游标 重新打开时游标的位置是否仍保留在表
  • 选择获取与 MySQL Group 中 max 对应的整行

    当我使用Max使用后查找特定 MySQL 组中字段的最大值GROUP BY 是否可以获取包含最大值的整行 我在处理一些论坛代码时偶然发现了这个线程 我想获取每个线程的最新帖子并将其显示在特定板的线程列表中 Quassnoi上面的回答对我非常
  • 如何使用 php 在 sql 查询中转义引号?

    我有一个疑问 sql SELECT CustomerID FROM tblCustomer WHERE EmailAddress addslashes POST username AND Password addslashes POST p
  • PHP递归遍历对象树[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何清除 APC 缓存而不使 Apache 崩溃?

    如果 APC 存储大量条目 清除它们会导致 httpd 崩溃 如果 apc clear cache user 花费的时间超过 phps max execution time 调用 apc clear cache 的脚本 将在之前被 php
  • ZF3/2 - 如何捕获 EVENT_DISPATCH 侦听器中引发的异常?

    有什么方法可以在 EVENT DISPATCH 监听器中抛出异常吗 class Module public function onBootstrap EventInterface event application event gt get

随机推荐

  • Django 多重注释减慢查询速度

    我一直在调试django debug toolbar 如果我在查询中使用多个注释 那么 Django 会花费大量时间来获取查询结果 class Project First models Model project first results
  • 返回其元素(列)全部匹配参考向量的行索引

    使用以下代码 c lt NULL for a in 1 4 b lt seq from a to a 5 c lt rbind c b c lt rbind c c rm a b 结果在这个矩阵中 gt c 1 2 3 4 5 6 b 1
  • 检测应用程序是否是从 Android Market 下载的

    我有一个 Android 库 可以将数据上传到测试服务器和生产服务器 我希望使用此库的开发人员在开发时使用测试服务器 并在从 Android Market 下载应用程序时使用生产服务器 应用程序是否有可能知道它来自哪里 市场或非市场 我想人
  • 终端 vim 未加载 .zshrc

    我的终端 vim 配置未加载 zshrc Zsh是环境登录shell 对于这种情况 正确的配置是什么 以下是我已经采取并已删除的一些措施 set shell zsh 使用 zsh 作为 shell 但不获取 rc 源 set shellcm
  • servicestack AppHostHttpListenerBase handlerpath 参数不起作用?

    不确定我是否在这里遗漏了一些东西 我在单元测试中使用 AppHostHttpListenerBase 来测试服务 并在其构造函数中为 handlerPath 参数传递 api 我在 hello Name 注册了一个服务 并且使用的是 3 9
  • STL 还是 Qt 容器?

    使用 Qt 容器的优点和缺点是什么 QMap QVector等 超过其 STL 等效项 我可以看到更喜欢 Qt 的一个原因 Qt 容器可以传递到 Qt 的其他部分 例如 它们可用于填充QVariant然后一个QSettings 但有一些限制
  • AppEngine:逐步调试

    在本地使用 AppEngine 时 即使用 dev appserver py 是否可以进行逐步调试 使用logging info 或类似函数来显示代码中所有变量的值并确定错误所在是一种过时的方式 为了扩展一下 codeape 答案的第一个建
  • 可以使用 Babel 转换为 TypeScript 吗?

    我明白巴别塔现在支持 TypeScript https github com babel babel tree master packages babel preset typescript样式类型注释 但是 它不会像 TypeScript
  • 如何为超出内容创建新的页面元素?

    我试图创建一些
  • 转换数组列表类型

    我有课Line其中包含一个内部ArrayList
  • 在单独线程中创建的 Tcl Interp 会共享任何全局数据吗?

    在我的 C 代码中 如果我为每个线程创建一个 tcl interp 并将其用于 Tcl EvalEx 脚本 并通过 Tcl GetStringResult 获取结果 那么该线程安全吗 除了 const 数据之外 这些线程之间没有共享数据 经
  • 无法使用 Spring 进行 JUnit 测试

    我的测试定义如下 package com mytest RunWith SpringJUnit4ClassRunner class ContextConfiguration public class SpringTestCase Test
  • 使用opengl进行布料模拟

    我的代码的某些部分出现错误 位于第 249 252 和 255 行 void drawTriangle Particle p1 Particle p2 Particle p3 const Vec3 color glColor3fv GLfl
  • 自 iOS 8 起应用程序图标大小

    我们的应用程序图标需要什么尺寸才能支持 iOS 8 以后推出的 Apple 设备 XCode 6 为 iOS 8 及更高版本添加了以下新图标 因此 图标大小为 87x87 120x120 和 180x180
  • Angular:如何强制重新编译指令?

    HTML div div
  • 如何在更新时保持列表视图的滚动位置

    我已经阅读了很多示例 但是如果我希望在一段时间后保持滚动位置ListView更新自JSON 那么我可以不使用AsyncTask实例 我的列表的代码是 String wrd ArrayList
  • 网络上 4 分钟视频的合理文件大小是多少?

    我正在开发一个带有视频的网站 我使用带有 Flash 回退功能的 HTML5 并在网站上托管视频 客户不想使用 Vimeo YouTube 等 该视频长 4 分钟多一点 我已将 mp4 格式的视频压缩至 12 7MB webm 和 ogv
  • 在C中将指针传递给静态全局变量

    将指向静态结构的指针传递给函数是否安全 我有这样的事情 mymodule c static MYEVENT STRUC T event uint 32 myRtos set event MYEVENT STRUCT T event ptr
  • 如何绘制具有不同范围的多列的箱线图

    我想绘制数据框多列的箱线图 使用 R 我可以使用轴并设置不同的范围以按照我想要的方式显示绘图 但在 python 中 我只能有一个范围 不能为不同的列设置不同的范围 如何在 python 中绘制类似于 ggplot2 的箱线图 我的代码片段
  • SQL 和 PHP 过滤器

    我有一个包含模型年份 from 和模型年份 to 的 SQL 表 在过滤器中我只需要选择一个参数年份 并且我想获取该年份间隙中的所有模型