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

标签 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();我的代码,它没有报告任何错误。我做错了什么?

最佳答案

您想将查询更改为...

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

但是你真的不应该使用 mysql_*,它已被弃用,你应该使用 PDO 连接到数据库

编辑...

您的表单有一个“post”方法 所以你应该用这个来代替...

$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);?>

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

关于php - 无法获取表单来显示 mysql 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16992819/

相关文章:

php - 获取与 MIN/MAX SUM 值关联的用户

mysql - 如何以更好的方式重写这个嵌套查询?

php - 在codeigniter中检查AJAX调用是否成功

php - 从 PHP URL 保存图像

php - 如何在php mysql中获取父名称?

php - fetch_array 与准备好的声明? PHP MySQL?

mysql - 如何使用 VB.Net 中已定义的列填充 datagridview

sed - 从包含确切数字的文件中删除一行并在第一次查找和删除时退出

javascript - 正则表达式完全匹配 ^abc$ 不起作用

indexing - 匹配 Solr 中的精确短语