首頁  >  文章  >  後端開發  >  如何用SELECT下拉菜单和TEXT文本框从选择数据库搜索数据

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

WBOY
WBOY原創
2016-06-23 13:57:49925瀏覽

例如我的下拉列表中学号、姓名、籍贯等选项,我选中“籍贯”,并在后面的文本框中输入“北京”,点击搜索按钮就在数据库中相应的籍贯字段进行匹配,并输出最终的结果。我是用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