Php 如何将链接添加到搜索结果

Php 如何将链接添加到搜索结果,php,hyperlink,Php,Hyperlink,我编写这段代码是为了能够搜索我的数据库,然后显示结果。(代码复制如下) 我需要一些帮助,因为我需要知道如何从搜索结果创建一个链接,这样他们就可以点击结果,它会自动打开一个新网页上的详细信息 我对PHP非常陌生,所以任何人能给予我的帮助都是非常感谢的 谢谢 <?php error_reporting(E_ALL); ini_set('display_errors', '1'); $search_output = ""; if(isset($_POST['searchquery']) &

我编写这段代码是为了能够搜索我的数据库,然后显示结果。(代码复制如下)

我需要一些帮助,因为我需要知道如何从搜索结果创建一个链接,这样他们就可以点击结果,它会自动打开一个新网页上的详细信息

我对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>

将表单方法替换为“get”而不是“post”,然后当表单提交时,它将生成您要查找的链接

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

看起来你已经在这里找到了搜索结果的链接,对吗

 $search_output .= '<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '">' .$title . '</a><br>';
$search_输出。='
';
您可能需要删除$\u服务器['PHP\u SELF']或将其移动到item.PHP之前,因为它会将其附加到您的文件名中,我相信您不希望这样做

现在,您需要做的就是创建item.php页面,并使用$\u GET['id']获取您要查找的项目的id

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
一旦您得到了要查找的项目,就可以对数据库进行查询

您还应该考虑使用或而不是常规的mysql命令,因为现在不推荐使用这些命令

为了获得参考,您可以尝试或

希望这有帮助


”;
<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '" taget="_blank">' .$title . '</a><br>';
我认为这部分只需使用“\u blank”目标并在链接页面中使用$\u GET变量即可显示结果

$search_output .= '<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '">' .$title . '</a><br>';
更有可能你只是想要(哦,并对你的符号进行编码)

$search_输出。='
';
他不是这么问的。他的搜索结果很好。他就是不知道如何生成包含单个项目的页面。@B-RiZzY:嗯,这就是我从问题中理解的。谢谢你的回答,但我认为我的问题不是很清楚……对不起!!我基本上需要创建一些代码,当选择项(链接)时,现有数据将发送到新页面,而不是再次查询数据库。这是可能的吗?有没有关于这个方法的想法,而不是创建一个单独的页面?这会减少服务器活动吗?安全性如何?谢谢Hanks B-RiZzY我会调查PDP和mysqli。您是对的,这里有一个指向item.php页面的链接,但是页面是空白的。您可以详细介绍一下设计我的item.php页面,或者举个例子。我需要为每个项目设计一个页面吗?您可以使用$\u GET参数在item.php页面中提取项目的id,然后运行查询从数据库中获取该项目的信息。您不必为每个项目设计单独的页面,因为您将使用一个页面来显示关于该项目的信息。URL的一个示例是:其中123是与数据库中的项目匹配的项目编号。然后,您将从URL获取该id,以便在查询中使用它,在本例中:$item_id=$\u get['id'];希望这能有所帮助。
<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>';