如何在搜索栏中创建链接转到其他页面?

时间:2014-10-28 10:02:20

标签: php mysql

我目前有一个有点工作的搜索栏,它按照我想要的方式工作,我只是想知道是否可以添加链接到不同的项目搜索?现在任何东西搜索重定向到'Session.php'我能够例如,如果有人搜索'主页'我能够显示结果然后用户能够点击'Home.php'吗?谢谢!

Search.php代码:

<?php 
//--- Authenticate code begins here ---
session_start();
//checks if the login session is true
if(!isset($_SESSION['sess_user'])){
header("location:index.php");
}
$username = $_SESSION['sess_user'];

// --- Authenticate code ends here ---
 ?> 

 <link rel="stylesheet" type="text/css" href="../css/style1.css">
 <?php
    mysql_connect("localhost", "root", "") or die("Error connecting to database: ".mysql_error());
    mysql_select_db("aha") or die(mysql_error());
?>
<html>
</html>

退出

    <head>
    <title>Search results</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<?php
    $query = $_GET['query']; 


    $min_length = 3;


    if(strlen($query) >= $min_length){ // if query length is more or equal minimum length then

        $query = htmlspecialchars($query); 
        // changes characters used in html to their equivalents, for example: < to &gt;

        $query = mysql_real_escape_string($query);
        // makes sure nobody uses SQL injection

        $raw_results = mysql_query("SELECT * FROM articles
            WHERE (`title` LIKE '%".$query."%') OR (`text` LIKE '%".$query."%')") or die(mysql_error());

        // * means that it selects all fields, you can also write: `id`, `title`, `text`
        // articles is the name of our table

        // '%$query%' is what I'm looking for, % means anything, for example if $query is Hello
        // it will match "hello", "Hello man", "gogohello", if you want exact match use `title`='$query'
        // or if you want to match just full word so "gogohello" is out use '% $query %' ...OR ... '$query %' ... OR ... '% $query'

       if(mysql_num_rows($raw_results) > 0){ // if one or more rows are returned do following

    while($results = mysql_fetch_array($raw_results)){
    // $results = mysql_fetch_array($raw_results) puts data from database into array, while it's valid it does the loop



echo "<a href='../pages/session.php'><h3>{$results['title']}</h3></a><p>{$results['text']}</‌​p>";



    }


}
    else{ // if there is no matching rows do following
    echo ("<br><br>No results</br></br>");
}

}

else{ // if query length is less than minimum
echo ("</br></br>Minimum length  is</br></br> ".$min_length);
}

?>


</body>

<br>
<br>
<a class="btn btn-search" type="button" href="index.php" >Search Again</a>
</br>
</br>




 DB FOR ARTICLE:

http://puu.sh/ctUUq/2f73509cf2.png

谢谢!

1 个答案:

答案 0 :(得分:0)

您必须存储数据库中每条记录的页面名称,然后使用您的查询检索它。

考虑到您将其存储在SQL表中名为“page_name”的列中,请根据用户的查询将此行更改为指向右侧页面:

echo "<a href='../pages/{$results['page_name']}'><h3>{$results['title']}</h3></a><p>{$results['text']}</‌​p>";