2013-03-18 109 views
-2

我有一個下拉菜單,我可以選擇使用這個菜單,併爲下一個頁面賦予一個值。我想用這個值來確定從哪裏選擇。所以可能的價值是汽車和玩具。所以我想讓用戶使用下拉菜單選擇汽車,這會導致數據庫從汽車中選擇找到該物品。如果用戶選擇玩具,我會讓他們從玩具中選擇以找到物品。當我嘗試使用此代碼時,我只是得到一個錯誤。如果我刪除'%item%',則錯誤消失。任何幫助將被愛。謝謝。選擇*從'%item%'?

提交

<form action="search.php" method="post"> 
<select> 
<option value>Choose A Item</option> 
<option value="car" name="item">Car</option> 
<option value="toys" name="item">Toys</option> 
</select> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

搜索

$term = $_POST['term']; 
$item = $_POST['item']; 

$query = mysql_query("select * from '%$item%' where Items like '%$term%'"); 
if(mysql_num_rows($query) <= 0) 
{ 
echo "<center>No results. Please try another item.</center>"; 
} else { 
while ($row = mysql_fetch_array($query)) { 
echo "<p2>"; 
echo $row['Items'], ' - Location ' .$row['Loc']; 
echo '<br/><br/>'; 
echo "</p2>"; 
} 
} 
?> 
+0

'%item%''應該替換爲表名。 – hjpotter92 2013-03-18 02:12:30

+0

不要使用mysql_ * ..別人會告訴你爲什麼 – shnisaka 2013-03-18 02:13:54

+0

我希望下拉菜單項定義表名。所以汽車會告訴它搜索臺車。玩具告訴它搜索表名玩具。只是想知道這是否可能。謝謝。 – 2013-03-18 02:15:47

回答

-1

我覺得你的查詢應該改爲:$query = mysql_query("select * from '$item' where Items like '%$term%'");

+0

SQL注入警報 - 不要使用mysql_ * - 請參閱PDO – Ross 2013-03-18 02:18:05

+0

我知道它不好,我只是試圖解決問題的背景下的問題。不過,我還是太粗心了。感謝您的提醒。 – 2013-03-18 03:06:43

0

1) - 不使用的mysql_query - 它的過時的庫和如上所述的查詢受到SQL注入的影響 - 互聯網上最常見的折衷方案。

2.)不要使用'%...%',因爲這不能被編入索引,並且在任何中等大小的表或更大的表上都會非常慢。嘗試至少刪除第一個%以允許建立索引。

http://php.net/manual/en/book.pdo.php