具有特定过滤的PHP搜索表单

时间:2015-04-07 11:09:08

标签: php html mysql forms search

我目前正在学习HTML,PHP和SQL的基础知识,以便在工作中进一步学习。

我为自己设定了一个基于Books公司的网站的挑战。我已成功构建了一些页面,其中显示了连接到我的书籍数据库的所有书籍的列表。我还在书籍列表中创建了一个功能,以便在选择时动态显示特定书籍的额外信息。

到目前为止一直没问题,但现在我已经被用户根据特定搜索条件搜索图书数据库的能力卡住了一段时间。

例如,我希望能够从下拉列表中选择特定的搜索条件,例如书名,作者等,并且用户可以将其输入到链接的搜索框中,并从数据库中返回值。请找到我的代码到目前为止,并为任何明显的错误道歉,因为我刚开始学习这些东西....

搜索表单:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<!--OVERALL WRAPPER CONTAINER-->
<div id="wrapper">

<!--OUTER CONTAINER-->
<div id="container">

 <!--HEADER CONTAINER-->
<div id="header"><!--LOGO PATH GOES HERE--><img src="../../../Web Design/websitebanner1.jpg" width="960" height="200" alt="Northumbria Book Company"></div>



<!--NAVIGATION CONTAINER-->
<div id="navContainer">
<center><ul>

<li><a href=".html"> 
<u>Home</u></a></li>

<li><u><a href=".html">Search</a></u></li>

<li><u><a href=".html">Credits</a></u></li>

<li><u><a href=".php">Books</a>

</u></li>

</ul>
</center>
</div>



<!--MAIN CONTENT CONTAINER-->
<div id="mainContainer">
<form id="SeachByCategory" action="SearchBookDB" method="get">
 <h1>Search For a Book</h1>
 <select name="category">
        <option value="bookISBN">Book ISBN</option>
        <option value="bookTitle">Book Title</option>
        <option value="bookYear">Book Year</option>
        <option value="pubID">Publisher</option>
        <option value="catID">Category</option>
    </select>

<label>Search: <input type="text" name="BookSearch" /></label>
 <p>
    <input type="submit" value="Find Books" />
</p>
</form>

</div>
<div id="footer">
<div align="center">



<ul>
<li><a href="#">Privacy Policy</a></li>
<li><a href="#">Disclaimer</a></li>
<li><a href="#">Terms</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</div></div></div></div>
</body>

数据库查询:

<!doctype html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>Untitled Document</title>
 </head>

<body>

<?php
include 'database_conn.php';

$bookTitleSearch = filter_has_var(INPUT_GET, 'bookTitle') ? $_GET    ['bookTitle']: null;

$sql = "SELECT * from nbc_book WHERE bookTitle = '%$bookTitleSearch%'"; 

$queryresult = mysqli_query($conn, $sql) or die(mysqli_error($conn));

while ($row = mysqli_fetch_assoc($queryresult)){
echo $row['bookTitle'];
}

mysql_free_result($queryresult);
mysql_close($conn);
?>

</body>
</html>    

1 个答案:

答案 0 :(得分:0)

你在寻找这样的东西:

<?php
include 'database_conn.php';

$bookTitleSearch = filter_has_var(INPUT_GET, 'bookTitle') ? $_GET['bookTitle']: null;

$sql = "SELECT * from nbc_book WHERE bookTitle = '%$bookTitleSearch%'"; 

$queryresult = mysqli_query($conn, $sql) or die(mysqli_error($conn));

while ($row = mysqli_fetch_assoc($queryresult)){
    echo $row['bookTitle'];
}

mysql_free_result($queryresult);
mysql_close($conn);
?>