如何让搜索结果出现在另一个页面上?

时间:2011-08-25 18:59:05

标签: php search

我在我的主页上进行了大量搜索,当用户输入文本字段并点击提交时,我希望我的数据库中的结果显示在另一个网站上,例如“searchresults.php”。在这种情况下,'really.html'是我的主页。

这是我的代码:

我做错了什么?

Really.html

<center>
<form action="searchresults.php" method="post">
<input type="text" size="35" value="Job Title e.g. Assistant Manager" 
style="background-    color:white; border: 
solid 1px #6E6E6E; height: 30px; font-size:18px; 
vertical-align:9px;color:#bbb" 
onfocus="if(this.value == 'Job Title e.g. Assistant Manager'){this.value = 
'';this.style.color='#000'}" />
<input type="text" size="35" value="Location e.g. Manchester"
style="background-    color:white; border: 
solid 1px #6E6E6E; height: 30px; font-size:18px; 
vertical-align:9px;color:#bbb" 
onfocus="if(this.value == 'Location e.g. Manchester'){this.value = 
'';this.style.color='#000'}" />
<input type="image" src="but.tiff" alt="Submit" width="60">
</form>

Searchresults.php

<html>
<body>
<?php
if(strlen(trim($_POST['search'])) > 0) {
//all of your php code for the search

$search = "%" . $_POST["search"] . "%";
$searchterm = "%" . $_POST["searchterm"] . "%";

    mysql_connect ("", "", "");
      mysql_select_db ("");
    if (!empty($_POST["search_string"])) 
    { 

    }  

  $query = "SELECT name,location,msg FROM contact WHERE name LIKE '$search' AND 
location      LIKE '$searchterm'";

  $result = mysql_query ($query);
if ($result) {
    while ($row = mysql_fetch_array ($result)) {
      echo "<br>$row[0]<br>";
      echo "$row[1]<br>";
      echo "$row[2]<br>";
    }
  }
}
?>
</body>
</html>

谢谢!

2 个答案:

答案 0 :(得分:1)

您应该在输入中添加attr 名称。 例如,

<input type="text" name="search" ... />

<input type="text" name="searchterm" ... />

另外,请不要忘记使用mysqL_escape_string函数转义输入数据

答案 1 :(得分:0)

查询可能返回0结果。而不是

if ($result) {

尝试

if (mysql_num_rows($result) >= 1) {

在您的查询中尝试...

$query = "SELECT name,location,msg FROM contact WHERE name LIKE '%$search%' AND 
location      LIKE '%$searchterm%'";

这将不那么严格,并返回更好的结果集。