我有一個數據庫,其中包含庫存項目和網頁,允許您通過數據庫搜索項目類型或特定項目編號。結果將返回並顯示在搜索表單下的表格中。使mysql數據庫搜索的結果可選
目前我通過將mysql查詢的結果保存到數組中,然後將數組的結果打印到表中來完成此操作。
如何使結果可選,然後有一個按鈕,如'添加',這將允許我只從選定的項目檢索數據庫中的信息。
編輯 -
<?php
require("header.php");
if(isset($_REQUEST['searching'])){ //check if form has been submitted
connect('final');//connect to DB
//set the values from search form
$field = $_POST['field'];
$query = $_POST['query'];
$query = htmlspecialchars($query); // stop HTML characters
$query = mysql_real_escape_string($query); //stop SQL injection
$data = mysql_query("SELECT *
FROM stock
WHERE stock.Part_Number IN (SELECT stock.Part_Number
FROM stock
WHERE upper(stock.$field) LIKE'%$query%')") ;//query the DB with search field in colleumn selected//
//$data = mysql_query("SELECT * FROM customer INNER JOIN address ON customer.ID = address.Customer_ID LEFT OUTER JOIN sites ON address.ID = sites.address_ID WHERE upper(customer.$field) LIKE'%$query%'") ;
if($data === FALSE) {
$error = 'Query error:'.mysql_error();
echo $error;
}
else
{
$test = array();
$colNames = array();
while($results = mysql_fetch_assoc($data)){// puts data from database into array, loops until no more
$test[] = $results;
}
$colNames = array_keys(reset($test));
$anymatches=mysql_num_rows($data); //checks if the querys returned any results
if ($anymatches == 0)
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
}
}
然後在下面在我的HTML表單創建一個表,並有
<?php
//print the header
foreach($colNames as $colName)
{
echo "<th>$colName</th>";
}
?>
和
<?php
//print the rows
foreach($test as $results)
{
echo "<tr>";
foreach($colNames as $colName)
{
echo "<td>".$results[$colName]."</td>";
}
echo "</tr>";
}
?>
我真的不知道從哪裏開始,但我會嘗試複選框的方法。
您能否將您的代碼添加到問題中?你有什麼嘗試,爲什麼它沒有工作? – andrewsi 2013-04-25 12:50:28
[**請不要在新代碼中使用'mysql_ *'函數**](http://bit.ly/phpmsql)。他們不再被維護[並且被正式棄用](http://j.mp/XqV7Lp)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。 – Kermit 2013-04-25 19:26:32