2013-03-18 67 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