如何使用PHP编写MySQL搜索查询

时间:2014-04-24 01:11:03

标签: php mysql sql

好的,我已经搜索了很多这方面的主题,现在我被卡住了。

我正在尝试编写一个使用PHP代码从MySQL数据库中提取数据的查询。该查询基于表单的用户输入。我希望用户输入任何关键字并返回整个数据库中所有表的所有相应数据。它是一个教科书数据库,我希望用户能够根据标题,价格,版本,日期或ISBN进行搜索。

<?php 
$query= $_GET['query'];

$result = mysql_query("SELECT * FROM `thetextbookexpress` WHERE (`Author(s)` LIKE    '%.".$query."%') 
OR (`Title` LIKE '%.".$query."%') 
OR (`Price` LIKE '%.".$query."%') 
OR (`Edition` LIKE  '%.".$query."%')
OR (`ISBN-13` LIKE '%".$query."%')
OR (`ISBN-10` LIKE   '%.".$query."%') OR (`ISBN-13` LIKE  '%.".$query."%')");

$num = mysql_numrows($result);

echo "<table id='search' border='1'>
<tr>
<tr>
<th>Author(s)</th>
<th>Title</th>
<th>Price</th>
<th>Edition</th>
<th>Date</th>
<th>ISBN-10</th>
<th>ISBN-13</th>
</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['Author(s)'] . "</td>";
echo "<td>" . $row['Title'] . "</td>";
echo "<td>" . $row['Price'] . "</td>";
echo "<td>" . $row['Edition'] . "</td>"; 
echo "<td>" . $row['Publication Date'] . "</td>"; 
echo "<td>" . $row['ISBN-10'] . "</td>"; 
echo "<td>" . $row['ISBN-13'] . "</td>";
}
?>

编辑:感谢您修复错误!这是查询中错误列的一个简单错误。虽然,现在我遇到了一个新问题,因为我现在在表单中输入关键字时看到一个空白页面。这是表单和按钮的附加代码。

<form action="search.php" method="get">
<input type="text" name="query" alt="Search Books" value=" Search by ISBN, Author, or      Title" 
maxlength="356" size="52";/>
<input type="submit" name="querybtn" value="Search Books"/>

2 个答案:

答案 0 :(得分:0)

您的查询出错了

die(mysql_error());

在mysql_fetch_array之前,查看查询中的错误位置..

然后也许我可以帮助你

答案 1 :(得分:0)

MySQL在成功时返回资源,在出错时返回FALSE。使用mysql_error()查看发生了什么。