我编写了这段代码,可以搜索我的数据库,然后显示结果。 (下面复制的代码)
我需要一些帮助,因为我需要知道如何从搜索结果创建链接,以便他们可以点击结果并自动在新网页上打开详细信息。
我是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 :(得分: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']获取您要查找的项目的ID。
获得所需物品后,您可以对数据库进行查询。
您还应该考虑使用PDO或mysqli而不是常规的mysql命令,因为它们不是现在推荐使用的。
有关获取的参考,您可以尝试w3schools或PHP's manual。
希望这有帮助!
答案 1 :(得分:0)
将表单方法替换为“get”而不是“post”,然后在提交表单时,它将生成您要查找的链接。
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
链接如下:
http://yourwebsite/yourfile.php?searchquery=sometext&fillter1=somevalue1&myBtn=submit
答案 2 :(得分:0)
<a href="item.php"' .$_SERVER['PHP_SELF'] . '"?c=$catId&p=' . $id . '" taget="_blank">' .$title . '</a><br>';
我只是使用“_blank”目标并在链接页面中使用$ _GET变量来显示结果。
答案 3 :(得分: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&p=$id">$title</a><br>';