日期:2014-05-16  浏览次数:20469 次

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

HTML页面:
<form name="search" action="search.php?action=search" method="post">
<select name="searchoption" id="searchoption">
        <option value="xh" selected="selected">学号</option>
        <option value="xm">姓名</option>
        <option value="jg">籍贯</option>
                </select>
<input type="text" name="keyword" id="keyword"/>
  <input type="submit" value="搜索" />
</form>

PHP页面:
<?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"<p align='center'><strong>请输入关键词!</strong></p>";
exit;//若没有输入关键词,则结束程序
}
  else{  
  echo("<strong><br/>搜索结果:共有".$row."条记录</strong></br>"); 
  echo("<table width='100%' border='1' bordercolor='#0066CC'><tr><td align='center'><strong>学号</strong></td>");
  echo("<td align='center'><strong>姓名</strong></td>");
  echo("<td align='center'><strong>籍贯</strong></td></tr>");
  while ($table = mysql_fetch_array($result))//输出数据查询数据!
  {
  echo("<tr><td align='center'>".$table['xh']."</td>");
  echo("<td align='center'>".$table['xm']."</td>");
  echo("<td align='center'>".$table['jg']."</td></tr>");
  }
  echo("</table>"); 
  }
  }
?>
------解决方案--------------------
'$searchId'  =>`$searchId`  或者干脆就什么都别加。

mysql_num_rows
------解决方案--------------------
$sqltext = "select * from lxsh where '$searchId' like '%$keyword%'";

把这一句改成:

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

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