>  기사  >  백엔드 개발  >  如何用SELECT下拉菜单和TEXT文本框从选择数据库搜索数据

如何用SELECT下拉菜单和TEXT文本框从选择数据库搜索数据

WBOY
WBOY원래의
2016-06-23 13:57:49930검색

例如我的下拉列表中学号、姓名、籍贯等选项,我选中“籍贯”,并在后面的文本框中输入“北京”,点击搜索按钮就在数据库中相应的籍贯字段进行匹配,并输出最终的结果。我是用php+mysql,请问我下面的代码有问题吗?总是无法实现功能,显示记录为0条。

HTML页面:




  


PHP页面:
  error_reporting(E_ALL ^ E_NOTICE);
  $dbhost = "localhost";
  $dbuser = "root";
  $dbpassword = "";
  $db = mysql_connect($dbhost, $dbuser, $dbpassword);
  mysql_query("SET NAMES 'UTF8'");
  mysql_select_db("lxshfile");
  if(isset($_GET["action"])&&$_GET["action"]=="search"){
  $searchId =$_POST["searchoption"];
  $keyword =$_POST["keyword"];
  $sqltext = "select * from lxsh where '$searchId' like '%$keyword%'";
  $result = mysql_query($sqltext);
  $row = mysql_numrows($result);
  if($keyword==""){
echo"

请输入关键词!

";
exit;//若没有输入关键词,则结束程序
}
  else{  
  echo("
搜索结果:共有".$row."条记录
"); 
  echo("");
  echo("");
  echo("");
  while ($table = mysql_fetch_array($result))//输出数据查询数据!
  {
  echo("");
  echo("");
  echo("");
  }
  echo("
学号姓名籍贯
".$table['xh']."".$table['xm']."".$table['jg']."
"); 
  }
  }
?>


回复讨论(解决方案)

'$searchId'  =>`$searchId`  或者干脆就什么都别加。

mysql_num_rows

我试过了,还是不行啊,$searchId上的引号加上或者去掉都不成。还有别的方法吗?

不知道你说哪里不行。$row还是0吗?
$result = mysql_query($sqltext)  or die(mysql_error());

贴出错误提示。

$sqltext = "select * from lxsh where '$searchId' like '%$keyword%'";

把这一句改成:

$sqltext = "select * from lxsh where $searchId like '%$keyword%'";

echo $sqltext;//可以打印出来看一下

$row = mysql_num_rows($result);
不是
$row = mysql_numrows($result);
楼主你写错了

回复3楼和4楼:

没有错误提示,就是点击了搜索以后搜索结果显示0条,没有任何搜索结果。
按照4楼的打印,比如我选了“学号”,输入了“069”,打印结果显示如下:
select * from lxsh where like '%069%'

$searchId的值没有取到,where后面什么都没有。

回复5楼:
已经修改过了,但是还是没有结果的显示,不知道是怎么回事。

回复3楼:

不好意思,有错误提示如下:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like '%%'' at line 1”

回复3楼:

不好意思,有错误提示如下:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'like '%%'' at line 1”



你的$keyword有问题,可能值没传过来。检查一下


  
  
这里的value值的设置,你的有没有跟你数据库中的命名是一样的??如果不一样,你把它改成跟数据库的命名一样试试看!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.