首页 / PHP / PHP如何控制MySQL多条件查询
PHP如何控制MySQL多条件查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP如何控制MySQL多条件查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6192字,纯文字阅读大概需要9分钟。
内容图文
![PHP如何控制MySQL多条件查询](/upload/InfoBanner/zyjiaocheng/201/c91133d1db4f40f4a07a7ccec414d496.jpg)
目前遇到的问题是,首次打开页面是,自动显示所有数据,并提示了两处错误,需要如何修改,即打开页面是空的,只有点击查询后才显示,第二个问题是如何让“选择状态”生效,选择完成执行SQL1,选择未完成执行SQL2,媒体版本号和线路为必选项,
那位帮改改。
选择状态的代码我是这样写的,可是执行不了,提示语法错误
if %{$_REQUEST['zhuangtai']}%="完成" then
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai='fin' order by busname asc";
elseif %{$_REQUEST['zhuangtai']}%="未完成" then
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai='new' order by busname asc";
完整代码:
$link=mysql_connect("localhost","root","12345678");
if(!$link) echo "没有连接成功!";
else echo "连接成功!";
mysql_select_db("busap", $link); //选择数据库
//控制查询条件
//if %{$_REQUEST['zhuangtai']}%="完成" then
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai='fin' order by busname asc";
//elseif %{$_REQUEST['zhuangtai']}%="未完成" then
//$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai='new' order by busname asc";
// mysql_query("SET NAMES GB2312"); //防止乱码
$rs = mysql_query($q); //获取数据集
$assoc= mysql_num_rows($rs);///影响的行数 , 原来用了mysql_fetch_assoc
echo "$assoc";
$row=mysql_fetch_array($rs); //只需要补充回这一行.
if(!$rs){die("Valid result!");}
?>
线路 | 中心编号 | 线路 | 车辆自编号 | 传输方式 | 媒体版本 | 日期 | 时间 | 状态 |
回复讨论(解决方案)
$q = "SELECT * FROM research where xianlu = " . $_GET['select'] ,多条件自己加上去就可以了
用. $_GET提示语法错误
现在的新进展是“选择状态“可用,但首次打开页面显示所有内容,并提示3处错误,如何修改打开页面不查询,只有点击查询再查询
完整代码如下:
$link=mysql_connect("localhost","root","12345678");
if(!$link) echo "没有连接成功!";
else echo "连接成功!";
mysql_select_db("busap", $link); //选择数据库
//控制查询条件
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai like '%{$_REQUEST['zhuangtai']}%' order by busname asc";
// mysql_query("SET NAMES GB2312"); //防止乱码
$rs = mysql_query($q); //获取数据集
$assoc= mysql_num_rows($rs);///影响的行数 , 原来用了mysql_fetch_assoc
echo "$assoc";
$row=mysql_fetch_array($rs); //只需要补充回这一行.
if(!$rs){die("Valid result!");}
?>
线路 | 中心编号 | 线路 | 车辆自编号 | 传输方式 | 媒体版本 | 日期 | 时间 | 状态 |
if($_REQUEST['submit'])
{
$link=mysql_connect("localhost","root","12345678");
if(!$link) echo "没有连接成功!";
else echo "连接成功!";
mysql_select_db("busap", $link); //选择数据库
//控制查询条件
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai like '%{$_REQUEST['zhuangtai']}%' order by busname asc";
// mysql_query("SET NAMES GB2312"); //防止乱码
$rs = mysql_query($q); //获取数据集
$assoc= mysql_num_rows($rs);///影响的行数 , 原来用了mysql_fetch_assoc
echo "$assoc";
$row=mysql_fetch_array($rs); //只需要补充回这一行.
if(!$rs){die("Valid result!");}
}
?>
线路 | 中心编号 | 线路 | 车辆自编号 | 传输方式 | 媒体版本 | 日期 | 时间 | 状态 |
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai like '%{$_REQUEST['zhuangtai']}%' order by busname asc";
对$_REQUEST['banben'],$_REQUEST['xianlu'],$_REQUEST['zhuangtai']做相应的判断
如:
$sqlstr = "";
if (!empty($_REQUEST['banben'])){
$sqlstr = " and banben like '%{$_REQUEST['banben']}%' ";
}
if (!empty($_REQUEST['xianlu'])){
$sqlstr .= " linename like '%{$_REQUEST['xianlu']}%' ";
}
同理$_REQUEST['zhuangtai']
$q = "SELECT * FROM research where 1 = 1 $sqlstr order by busname asc";
if (!empty($_REQUEST['xianlu'])){
$sqlstr .= " and linename like '%{$_REQUEST['xianlu']}%' ";
}
现在问题基本都解决啦,但运行出一个错误,但还不耽误用,怎么能让他不显示啊
第81行代码是:
完整代码如下:
if($_REQUEST['submit']!="")
{
$link=mysql_connect("127.0.0.1","root","12345678");
if(!$link) echo "没有连接成功!";
else echo "连接成功!";
mysql_select_db("busap", $link); //选择数据库
//控制查询条件
$q = "SELECT * FROM research where banben like '%{$_REQUEST['banben']}%' AND linename like '%{$_REQUEST['xianlu']}%' AND zhuangtai like '%{$_REQUEST['zhuangtai']}%' order by busname asc";
// mysql_query("SET NAMES GB2312"); //防止乱码
$rs = mysql_query($q); //获取数据集
$assoc= mysql_num_rows($rs);///影响的行数 , 原来用了mysql_fetch_assoc
echo "$assoc";
$row=mysql_fetch_array($rs); //只需要补充回这一行.
if(!$rs){die("Valid result!");}
}
?>
线路 | 中心编号 | 线路 | 车辆自编号 | 传输方式 | 媒体版本 | 日期 | 时间 | 状态 |