无法获取表单来显示mysql结果

时间:2013-06-07 20:56:42

标签: php mysql exact-match

我对MySQL和PHP相当新,并且一直在阅读书籍,观看教程和尝试示例,但我仍然坚持让这个搜索查询工作。 我有一个简单的搜索表单:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 5</title>
</head>

<body>
<h2>Search</h2>
 <form name="search" method="post" action="process_search.php">
Seach for: <input type="text" name="find" />
 <input type="submit" name="submit" value="search"/>
 </form>
</body>

</html>

这是php表单中处理我遇到问题的搜索请求的部分

$db_path ="localhost"; //---Host name or path to database
$db_username ="root"; //-----------------------------MySQL database username
$db_password = "password"; //----------------------------MySQL database password
$db_name = "database"; //--------------------------------MySQL database name
$tbl_name = "stuff"; //---------------------------------MySQL database table

// Connect to server and select databse
 mysql_connect("$db_path", "$db_username", "$db_password")or die("cannot connect"); 
 mysql_select_db("$db_name")or die("cannot select DB");

//filtering input for xss and sql injection
$input = @$_GET['find'];
$input = strip_tags( $input );
$input = mysql_real_escape_string( $input );
$input = trim( $input );





$sql = mysql_query("select * from $tbl_name WHERE first_name = '". $input . "'");

while ($rows = mysql_fetch_array($sql)){

我按照给出的示例但是查询没有返回任何结果,它会显示表头,但是表中没有任何内容,我添加了mysql_error();到我的代码,它报告没有错误。我做错了什么?

2 个答案:

答案 0 :(得分:0)

您想将查询更改为...

$sql = mysql_query("select * from $tbl_name WHERE first_name LIKE '%". $input . "%'");

但你真的不应该使用mysql_ *,不推荐使用,你应该使用PDO来连接数据库

编辑...

您的表单有“发布”的方法 所以你应该这样做......

$input = $_POST['find'];

我相信这会解决你的问题! :)

编辑2 ......

好的,你需要找出你的表格没有发布变量的原因...... 所以只需在页面上显示...

 <form name="search" method="post" action="process_search.php">
  Seach for: <input type="text" name="find" />
  <input type="submit" name="submit" value="search"/>
 </form>

并且在你的php页面上只有... ...

<?php var_dump($_REQUEST);?>

告诉我你得到了什么.... 我会和你聊天,但你没有足够的代表聊天,因此需要进行多次编辑。

答案 1 :(得分:0)

使用它 - 我相信这是有效的。如果仍然没有结果,则可能还有其他问题。

$db_path ="localhost"; //---Host name or path to database
$db_username ="root";  //-----------------------------MySQL database username
$db_password = "password"; //----------------------------MySQL database password
$db_name = "database"; //--------------------------------MySQL database name

// Connect to server and select databse
 mysql_connect("$db_path", "$db_username", "$db_password") or die("cannot connect"); 
 mysql_select_db("$db_name")or die("cannot select DB");

//filtering input for xss and sql injection
$input = mysql_real_escape_string(strip_tags(trim($_REQUEST['find'])));

$sql = mysql_query("SELECT * FROM stuff WHERE first_name='$input'");

while ($rows = mysql_fetch_array($sql)){