我可以在sql中过滤我的表单

时间:2018-05-18 18:52:07

标签: php sql

我有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>

我该怎么办? 为什么我不能过滤哪里?

2 个答案:

答案 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_connectmysql_select_dbmysql_querymysql_fetch_assoc已被弃用您可以使用MySQLi extensionPDO (PHP Data Objects)进行连接数据库。

阅读this article(英语)或this article(波斯语)了解更多