我有2个PHP页面,想要用来自用户的数据过滤我的表单。 我的数据库名称:resturant和我的表名:resturant 请帮我 我使用php我的管理员。 我是初学者。
这是我的HTML页面
<!DOCTYPE HTML>
<HTML>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="mycss.css">
</head>
<BODY>
<Form method="get" action="showtype.php">
<center>
<p><Select Name = "Foodlist">
<Option value="">All</Option>
<Option value="dessert">dessert</Option>
<Option value="traditional">traditional</Option>
<Option value="fast food">fast food</Option>
</Select>
</p>
<p><input type="submit" value="Show"></p>
</center>
</Form>
</body>
</html>
这是我的php页面
<!DOCTYPE HTML>
<HTML>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="mycss.css">
</head>
<BODY>
<?php
$db_host="localhost";
$db_user="root";
$db_pass="";
$db_name="resturant";
$db_table="resturant";
error_reporting(E_ALL & ~E_DEPRECATED & ~E_WARNING & ~E_NOTICE & ~E_STRICT);
$con = mysql_connect($db_host,$db_user,$db_pass);
$selected=mysql_select_db($db_name, $con);
$SQL=" Select * From resturant";
$t= $_GET['Foodlist'];
if ($t !='')
{
$SQL.= " where Food-type2 = $t";
}
$dbresult=mysql_query($SQL,$con);
while($amch=mysql_fetch_assoc($dbresult)) { ?>
<div class="content">
<h3><?php echo $amch['Food-type2'];?></h3>
</div>
<?php } ?>
</BODY>
</HTML>
我该怎么办? 为什么我不能过滤哪里?
答案 0 :(得分:0)
尝试使用单引号保留$ t。
$SQL.= " where Food-type2 = '$t'";
并且为了调试查询,在执行它之前回显$ SQL并查看它是如何生成的,如果可能的话尝试在mysql控制台中执行它。
答案 1 :(得分:0)
praveen-myakala
说。您必须将$SQL
更改为
$SQL.= " where Food-type2 = '$t'";
或
$SQL.= " where `Food-type2` = '$t'";
但请记住,mysql_connect
,mysql_select_db
,mysql_query
和mysql_fetch_assoc
已被弃用您可以使用MySQLi extension
或PDO (PHP Data Objects)
进行连接数据库。
阅读this article(英语)或this article(波斯语)了解更多