2014-04-24 56 views
0

好吧,我在這個上搜索了很多主題,現在我被卡住了。如何使用PHP編寫MySQL搜索查詢

我想寫一個查詢,將使用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"/> 
+0

您的查詢失敗。請參閱[本答案](http://stackoverflow.com/a/11674313/250259)瞭解如何解決此問題。僅供參考,您可以[SQL注入](http://stackoverflow.com/q/60174)。 –

回答

0

你有你的查詢時出現錯誤把

die(mysql_error()); 

mysql_fetch_array之前,看看哪裏是錯誤恰好在您的查詢..

,然後也許我可以幫你

+0

謝謝!謝謝你,我修復了錯誤!這是查詢中錯誤列的簡單錯誤。雖然,現在我遇到了一個新問題,因爲我現在在窗體中輸入關鍵字時會看到一個空白頁面。我在上面添加了其他代碼。 – user3566709

+0

首先你必須在search.php中關閉你的html標籤 並使用print_r($ row);在while循環中查看你的查詢是否返回了一些東西 – Tofandel

0

MySQL在成功時返回資源,錯誤時返回FALSE。使用mysql_error()來查看發生了什麼。