搜索不会在同一页面上显示

时间:2011-03-06 21:51:13

标签: php mysql search

我有三个档案; index.php,searchbar.php和search.php

现在当我有search.php在自己的页面上显示其结果时很好,但是当我尝试在index.php中包含搜索页面时,我什么都没得到。

所以我在index.php中包含了searchbox.php,所以我有一个搜索栏,然后我搜索一些内容,并在index.php上使用$ _GET ['p']包含search.php页面,但是搜索总是空白,如果我只是将search.php作为自己的页面并且不尝试包含它然后我得到我的结果但是id就像他们被包含在他们被搜索的页面上一样。

的index.php     

<?php

if (isset($_GET['p']) && $_GET['p'] != "") {

$p = $_GET['p'];

if (file_exists('include/'.$p.'.php')) {

@include ('include/'.$p.'.php');

} elseif (!file_exists('include/'.$p.'.php')) {

echo 'Page you are requesting doesn´t exist<br><br>';

}

} else {

@include ('news.php');

}

?>

searchbox.php

<div id="searchwrapper"><form action="?p=search" method="get">
<input type="text" class="searchbox" name="query" value=""  id="query"/>
<input type="image" src="search.png" class="searchbox_submit" value=""  ALT="Submit Form" id="submit"/>
</form>
</div>

的search.php

<?php
include 'connect.php'; 
$searchTerms = $_GET['query'];
$query = mysql_query("SELECT * FROM misc WHERE itemname LIKE  '%$searchTerms%' ORDER BY itemname ");

{
echo "<table border='1' cellpadding='2' cellspacing='0' width=608 id='misc' class='tablesorter'><thead>";
echo "<tr> <th> </th> <th>Item Name</th> <th>Desc.</th></tr></thead><tbody>";
// keeps getting the next row until there are no more to get

while($row = mysql_fetch_array( $query )) {

    // Print out the contents of each row into a table
    echo "<tr><td width=50>";
    echo $row['image'];
    echo "</td><td width=150>";
    echo $row['itemname'];
    echo "</td><td width=250>";
    echo $row['desc'];
    echo "</td></tr>"; 
}

echo "</tbody></table>";;
}
if (mysql_num_rows($query) == 0)
{
  echo 'No Results';
}
?>

2 个答案:

答案 0 :(得分:0)

空白页几乎总是意味着您在结束?>后有空格。删除index.php和search.php中的结束?> - 这将强制预处理器动态确定EOF,这正是您想要的(以及几乎每个PHP框架/公司在其编码标准中包含的内容)。 / p>

答案 1 :(得分:0)

当我复制你的代码时,“p = search”没有结转。更好的设置方法是让操作只是转到你的index.php文件,并有一个隐藏的输入:

<input type="hidden" name="p" value="search" />

这对你有用!