当前位置: 首页 > 面试题库 >

使用php变量创建动态mysql查询

宁弘亮
2023-03-14
问题内容

我有一个html表,可将mySQL数据库表中的所有内容加载。我有与该mySQL表的列相关的下拉菜单-当用户选择下拉菜单之一时,它将使用AJAX查询数据库。

我需要弄清楚如何动态构建查询,因为有时下拉列表将为空(即,它们不想按该列进行过滤)。

做这个的最好方式是什么?

目前我有这样的事情:

    $stationFilter = $_GET['station'];
    $verticalFilter = $_GET['vertical'];
    $creativeFilter = $_GET['creative'];
    $weekFilter = $_GET['week'];

    $result = mysql_query("SELECT * FROM $tableName WHERE STATION_NETWORK = '$stationFilter' AND VERTICAL = '$verticalFilter' AND CREATIVE = '$creativeFilter'  AND WK = '$weekFilter'");   
    $data = array();
    while ($row = mysql_fetch_row($result) )
        {
        $data[] = $row;
        }   
    $finalarray['rowdata'] = $data;

您可以想象这是行不通的,因为如果这些字段中的任何一个为空,查询都会失败(或者不返回任何内容)。

显然,创建这样的“静态”查询确实会使某些变量为空的困难。

动态创建该查询以使其仅输入不为空的查询的最佳方法是添加到查询中以便成功完成并显示适当的数据?


问题答案:

只需检查变量是否包含值,如果它们包含,就可以像下面这样构建查询:

unset($sql);

if ($stationFilter) {
    $sql[] = " STATION_NETWORK = '$stationFilter' ";
}
if ($verticalFilter) {
    $sql[] = " VERTICAL = '$verticalFilter' ";
}

$query = "SELECT * FROM $tableName";

if (!empty($sql)) {
    $query .= ' WHERE ' . implode(' AND ', $sql);
}

echo $query;
// mysql_query($query);


 类似资料:
  • 问题内容: 我正在尝试根据用户输入创建动态搜索查询。 用户可以不填写任何,部分或全部字段。 该查询在表中搜索符合所有要求的记录。 现在,我已经完成了研究,并且发现了执行此操作的多种方法。但是它们都不起作用,如果起作用了,那么它们就不可行了。 试图: 目前,我正在创建这样的查询: 该查询有效,但前提是您填写了所有字段。 我是从stackoverflow文章中得到的,我再也找不到了,它说: 如果用户已

  • 问题内容: 我在用PHP变量创建SQL表时遇到了麻烦。 假设$ tbl_date =“ data”; 它不会创建表。 问题答案: 您的表名不在引号中,因此似乎无法正常工作。试试这个: 字段名称也是如此。 也可以尝试一下,这样人类更容易阅读: 请注意不同类型的引号: -在PHP中用于构建某些字符串(例如SQL查询)的单引号和双引号 -专门用作表名和列名的SQL查询一部分的反引号

  • 表名,excel文件路径,excel文件名是动态的(它是基于用户输入的)。我是SSIS的新手,我只使用过静态值。如何在SSIS中实现上述场景?

  • 问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错

  • 问题内容: 我想使用变量名创建备份SQL表。 类似于 但是我越来越 ‘@SQLTable’附近的语法不正确。 这只是用于维护的小脚本的一部分,因此我不必担心注射。 问题答案:

  • 本文向大家介绍JS使用eval()动态创建变量的方法,包括了JS使用eval()动态创建变量的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS使用eval()动态创建变量的方法。分享给大家供大家参考,具体如下: 一、什么是eval()函数? eval_r()函数可计算某个字符串,并执行其中的的 JavaScript 代码。 二、如何动态定义变量? 既然eval()能够计算字符串,何