Home  >  Article  >  Backend Development  >  PHP如何控制MySQL多条件查询

PHP如何控制MySQL多条件查询

WBOY
WBOYOriginal
2016-06-23 13:48:101463browse

做了个PHP查询数据库的页面,现在可输入版本号和选择线路查询,选择状态无法使用,页面如下,


目前遇到的问题是,首次打开页面是,自动显示所有数据,并提示了两处错误,需要如何修改,即打开页面是空的,只有点击查询后才显示,第二个问题是如何让“选择状态”生效,选择完成执行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";  


完整代码:
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


数据查询



 




                 
媒体版本号:
                   
选择线路
                 
                 选择状态
                 
                 
                 
                 

        


$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!");}


?>



  
    
    
    
    
    
    
    
    
    
  
   do { ?>

  
    
    
    
    
    
    
    
    
    

  
  
线路
中心编号
线路
车辆自编号
传输方式
媒体版本
日期
时间
状态


回复讨论(解决方案)

$q = "SELECT * FROM research where xianlu = " . $_GET['select']  ,多条件自己加上去就可以了

用. $_GET提示语法错误

现在的新进展是“选择状态“可用,但首次打开页面显示所有内容,并提示3处错误,如何修改打开页面不查询,只有点击查询再查询


完整代码如下:
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


数据查询



 




                 
媒体版本号:
                   
选择线路
                 
                 选择状态
                 
                 
                 
                 

        


$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!");}


?>



  
    
    
    
    
    
    
    
    
    
  
   do { ?>

  
    
    
    
    
    
    
    
    
    

  
  
线路
中心编号
线路
车辆自编号
传输方式
媒体版本
日期
时间
状态

nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


数据查询



 




                 
媒体版本号:
                   
选择线路
                 
                 选择状态
                 
                 
                 
                 

        


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!");}
}

?>
 


  
    
    
    
    
    
    
    
    
    
  
   do { ?>

  
    
    
    
    
    
    
    
    
    

  
  
线路
中心编号
线路
车辆自编号
传输方式
媒体版本
日期
时间
状态


$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行代码是:   



完整代码如下:
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
 


 数据查询
 
 

 

 


 


                  
媒体版本号:
                   
选择线路
                 
                  选择状态
                 
                  
                  
                  

         
 

   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!");}
 }
 ?>
 

   
     
     
     
     
     
     
     
     
     
   
     do { ?>

   
     
     
     
     
     
     
     
     
     

   
   
 
线路
中心编号
线路
车辆自编号
传输方式
媒体版本
日期
时间
状态

  

mysql_fetch_array加个判断就可以了

怎么加判断,新手,不会

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn