2012-08-02 61 views
0

我写了这个代码以使搜索我的数据库,并以然后显示结果。 (下面的代码复制)如何添加一个链接到搜索结果

我需要一些帮助,因为我需要知道如何创建,然后从搜索结果中的链接,使他们能够在结果上点击,它会自动打开一个新的网页的细节。

我很新的PHP所以任何帮助任何人都可以给予赞赏。

感谢

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
$search_output = ""; 
if(isset($_POST['searchquery']) && $_POST['searchquery'] != ""){ 
    $searchquery = preg_replace('#[^a-z 0-9?!]#i', '', $_POST['searchquery']); 
    if($_POST['filter1'] == "Whole Site"){ 
     $sqlCommand = "(SELECT id, title AS title FROM cars WHERE title LIKE '%$searchquery%' OR description LIKE '%$searchquery%') UNION (SELECT id, title AS title FROM motorcycles WHERE title LIKE '%$searchquery%' OR description LIKE '%$searchquery%')"; 
    } else if($_POST['filter1'] == "cars"){ 
     $sqlCommand = "SELECT id, title AS title FROM cars WHERE title LIKE '%$searchquery%' OR description LIKE '%$searchquery%'"; 
    } else if($_POST['filter1'] == "motorcycles"){ 
     $sqlCommand = "SELECT id, title AS title FROM motorcycles WHERE title LIKE '%$searchquery%' OR description LIKE '%$searchquery%'"; 
    } 
     include_once("testconn2.php"); 
     $query = mysql_query($sqlCommand) or die(mysql_error()); 
    $count = mysql_num_rows($query); 
    if($count > 1){ 
     $search_output .= "<hr />$count results for <strong>$searchquery</strong><hr />$sqlCommand<hr />"; 
     while($row = mysql_fetch_array($query)){ 
       $id = $row["id"]; 
      $title = $row["title"]; 
      $search_output .= '<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '">' .$title . '</a><br>'; 
       } // close while 
    } else { 
     $search_output = "<hr />0 results for <strong>$searchquery</strong><hr />$sqlCommand"; 
    } 
} 
?> 
<html> 
<head> 
</head> 
<body> 
<h2>Search the Database </h2> <h4><a href="Sign in.php">Sign in</a> <a href="UserRegistration.php">Register</a></h4> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
Search For: 
    <input name="searchquery" type="text" size="44" maxlength="88"> 
Within: 
<select name="filter1"> 
<option value="Whole Site">Whole Site</option> 
<option value="Cars">Cars</option> 
<option value="Motorcycles">Motorcycles</option> 
</select> 
<input name="myBtn" type="submit"> 
<br /> 
</form> 
<div> 
<?php echo $search_output; ?> 
</div> 
</body> 
</html> 

回答

0

替换为形式的方法“获得”,而不是“后”,那么当表单提交它会产生你正在寻找的链接。

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 

的链接将是这样的:

http://yourwebsite/yourfile.php?searchquery=sometext&fillter1=somevalue1&myBtn=submit 
+0

这不是他所问的。他的搜索结果工作正常。他无法弄清楚如何使用单个项目生成页面。 – 2012-08-02 22:55:19

+0

@ B-RiZzY:好的,这就是我从这个问题所理解的。 – Jocelyn 2012-08-02 22:56:21

+0

感谢您的回复,但我不认为我对我的问题非常清楚......对不起!我基本上需要创建一些代码,当选择项目(链接)时,现有数据将发送到新页面,而不是再次查询数据库。 这是可能的,有没有关于这种方法的任何想法,而不是创建一个单独的页面?这是否会减少服务器活动并且它有多安全? 谢谢 – user1572621 2012-09-05 21:11:40

2

看起来你已经有一个链接到搜索结果在这里,对不对?

$search_output .= '<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '">' .$title . '</a><br>'; 

你可能想删除$ _ SERVER [“PHP_SELF”]或item.php之前移动它,因为它会追加到您的文件名,我确信你不想要的。

现在你应该做的是创建item.php页面,并使用$ _GET [“身份证”]让你正在寻找项目的ID。

一旦你得到你所寻找的项目,然后你可以做你的数据库的查询。

您还应该考虑使用PDOmysqli而不是常规的mysql命令,因为它们不是现在推荐使用的。

作为参考来获得,你可以尝试w3schoolsPHP's manual

希望这会有所帮助!

+0

w3schools不好。 [这是为什么](http://w3fools.com/)。 – Jocelyn 2012-08-02 23:12:21

+0

感谢B-RiZzY生病了看PDP和mysqli。你是正确的有一个链接到item.php页面,但页面是空白的,你可以更详细地设计我的item.php页面或者一个例子。我需要为每件商品设计一个页面吗? – user1572621 2012-09-05 21:25:01

+0

您可以使用$ _GET参数在item.php页面中提取项目的ID,然后运行查询以从数据库中获取该项目的信息。您不必为每个项目设计单独的页面,因为您将使用一个页面来显示项目的信息。你的URL的一个例子可以是:http://wwww.yoursite.com/item.php?id=123其中123是与你的数据库中的项目相匹配的项目编号。然后,您将从URL中获取该ID,以便在您的查询中使用该ID,在这种情况下:$ item_id = $ _GET ['id'];希望这有助于。 – 2012-09-13 13:32:34

0
<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '" taget="_blank">' .$title . '</a><br>'; 

那部分只是使用“_blank”目标并在链接页面中使用$ _GET变量来显示结果。

0
$search_output .= '<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '">' .$title . '</a><br>'; 

随着$_SERVER['PHP_SELF']包括双引号外面,看起来像它会产生类似

<a href="item.php"search.php"?c=1&p=1">Title</a><br> 

更可能你只是想(哦,和编码您的&符号)

$search_output .= '<a href="item.php?$catId&amp;p=$id">$title</a><br>'; 
相关问题