微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于用户选项的PHP动态SQL SELECT语句

首先,我想提一下,我一直在尝试和寻找解决方案,但到目前为止没有运气.我的问题如下:

我有一个包含几十行的MySQL数据库,我创建了一个jQuery网格来显示数据;这个页面已经有效了.
根据要求,我正在整理一个页面,人们可以从复选框中选择几个选项并过滤结果.这是它的工作方式:

第1页将有3组复选框(名称,位置,语言),每组都有不同的选项([姓名:大卫,尼克等],[地点:纽约,华盛顿,孟买,伦敦,迈阿密],[语言:英语,西班牙语].一旦用户选择了他的选项,它将提交一个类似这样的表格

grid.PHP位置=华盛顿和放大器;位置=孟买和放大器;语言=英语和放大器;名称=大卫

创建字符串很简单,但接收器将获取此参数并放置在数组中然后创建sql语句是我正在努力的地方.

我尝试过这样的事情:

$location= $_GET['location'];
$language= $_GET['language'];
$name= $_GET['name'];

if($location!=""){
    $where[] = 'location=';
    $where_args[] = $location;
}
//same code for the other 2 options

$where_clause = implode(' OR ', $where_args);

$sql_json = "SELECT * FROM myTable WHERE $where_clause ORDER BY id DESC";

这些选项都不是强制性的,因此查询需要接受可能设置或不设置值的可能性,因此最终可能会出现类似grid.PHP?language = English的内容.

我知道上面的代码不太有用,但如果有人能指出我正确的方向,我将不胜感激.

解决方法:

试试这个:

<?PHP
$location= $_GET['location'];
$language= $_GET['language'];
$name= $_GET['name'];

if($location!=""){
    $where[] = " `location` = '".MysqL_real_escape_string($location)."'";
}
if($language!=""){
    $where[] = " `language` = '".MysqL_real_escape_string($language)."'";
}
if($name!=""){
    $where[] = " `name` = '".MysqL_real_escape_string($name)."'";
}
$where_clause = implode(' OR ', $where);
//same code for the other 2 options

$sql_json = "SELECT * FROM myTable WHERE $where_clause ORDER BY id DESC";
?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐