【问题标题】:PHP MYSQL HTML Search with multiple filters/ fields具有多个过滤器/字段的 PHP MYSQL HTML 搜索
【发布时间】:2016-11-07 01:41:54
【问题描述】:

我有一个包含 5 个表的 MySQL 数据库

 - companies
 - place
 - category
 - sub-category
 - company-sub-category

'companies' consist of 6 column:

 - company_id (**PK**)

 - company name 

 - place_id (**FK**)

 - address

 - cat_id  (**FK**)

 - company_subcat_id  (**FK**)

'place' consist of 2 column:

 - place_id (**PK**)

 - place_name  (**FK**)

'category' consist of 2 column:

 - cat_id (**PK**)

 - cat_name  (**FK**)

'sub-category' consist of 2 column:

 - sub-cat_id(**PK**)

 - sub-cat_name  (**FK**)

'company-sub-category' consist of 3 column:

 - company_subcat_id (**PK**)

 - company_id   (**FK**)

 - sub-cat_id   (**FK**)

我想做一个:-

  1. 使用 MySQL 中的数据库使用 PHP HTML 进行搜索。

  2. 搜索表单还有一个过滤系统,如下面的 html 所示。

  3. 我希望结果中包含公司名称

  4. 我还想让结果出现在另一个页面“search-results.html”

我对 php 还很陌生,不知道如何使搜索表单正常工作。

<!-- Search -->

<nav id="c-menu--slide-top" class="c-menu c-menu--slide-top">
  <button class="c-menu__close" style="float: right;background: transparent;font-size: 45px;">
  <strong>x</strong></button>
  <ul class="c-menu__items">
    <li class="c-menu__item">
      <form action="" target="search-results.html" method="post" id="nl-form" class="nl-form">
          I am looking for
          <select name="category" id="category">
            <option value="0" selected>category choice</option>
            <option value="1">Women</option>
            <option value="2">Men</option>
            <option value="3">Kids</option>
          </select>'s
          <br />
          <select name="sub-category" id="sub-category">
            <option value="" selected>-sub-category</option>
            <option value="1">Jackets</option>
            <option value="2">Tops</option>
            <option value="3">Bottoms</option>
            <option value="4">Accesories</option>
            <option value="5">Undergarments</option>
            <option value="6">Shoes</option>
          </select>
          <br />around 
          <select name="price_range" id="price_range">
            <option value="0" selected>price range</option>
            <option value="$">$</option>
            <option value="$$">$ $</option>
            <option value="$$$">$ $ $</option>
            <option value="$$$$">$ $ $ $</option>
          </select>
          eatery
          <br /> and would prefer
          <select name="pickup_choice" id="pickup_choice">
            <option value="0" selected>prefered chioce</option>
            <option value="1">Home Delivery</option>
            <option value="2">Self pick-up</option>
          </select>
          <br />at
           <input type="text" value="" name="place" placeholder="location" data-subline=" eg.<em>little India</em> or <em>Chinatown</em>etc"/>
          <div class="nl-submit-wrap">
            <button class="nl-submit" type="submit"  href="search-result.html" name="submit"><a href="search-result.html"> Find a store</a></button>



          </div>
          <div class="nl-overlay"></div>
        </form>
        <script src="js/nlform.js"></script>
     </li>
  </ul>
</nav>

<!--End of Search-->

这是我使用的 html 文件,我没有包含 CSS 和 JS 文件,因为我认为没有必要,但是如果有人想让我展示它,请告诉我,我会很高兴去做吧。

非常感谢您的帮助,我要提前感谢您。


这是我来的 PHP

    <?php


        $whereClauses = array(); 
        if (! empty($_POST['category'])) $whereClauses[] ="category='".//**mysql_real_escape_string($_POST['category'])."'";

        if (! empty($_POST['sub_category'])) 
          $whereClauses[] ="category='".mysql_real_escape_string($_POST['sub_category'])."'"; 
        $where = ''; 

        if (! empty($_POST['price_range'])) 
          $whereClauses[] ="price_range='".mysql_real_escape_string($_POST['price_range'])."'"; 
        $where = ''; 

        if (! empty($_POST['pickup_choice'])) 
          $whereClauses[] ="pickup_choice='".mysql_real_escape_string($_POST['pickup_choice'])."'"; 
        $where = ''; 

        if (count($whereClauses) > 0) 
        { 
          $where = ' WHERE '.implode(' AND ',$whereClauses); 
        } 

        $sql = mysql_query("SELECT * FROM mytable ORDER BY id DESC $limit" .$where);//**  
        $result=mysql_query($sql);
        while ($row = mysql_fetch_assoc($result)) {
        echo $row['cuisine'];
        echo $row['Jobs'];

        }
        ?>

<!-- end snippet -->

这里是“search-result.html”页面:_

    </head>
        

      <body>
    <div class="container">
        <div class="well well-sm list-grid-toggle">
            <strong>Category Title</strong>
            <div class="btn-group">
                <a href="#" id="list" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-th-list">
                </span>List</a> <a href="#" id="grid" class="btn btn-default btn-sm"><span
                    class="glyphicon glyphicon-th"></span>Grid</a>
            </div>
        </div>
        <div id="products" class="row list-group">
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail comany-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Company Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 company-link-btn">
                                <a class="btn btn-success company-link" href="company-profile.html">View Menu</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail company-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Company Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 company-link-btn">
                                <a class="btn btn-success company-link" href="company-profile.html">View Menu</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail company-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Company Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 company-link-btn">
                                <a class="btn btn-success company-link" href="company-profile.html">View Menu</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail restaurant-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Restaurant Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 restaurant-link-btn">
                                <a class="btn btn-success restaurant-link" href="restaurant-profile.html">View Menu</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail restaurant-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Company Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 company-link-btn">
                                <a class="btn btn-success company-link" href="restaurant-profile.html">View product</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <div class="item  col-xs-6 col-lg-4">
                <div class="thumbnail company-detail">
                    <img class="group list-group-image" src="http://placehold.it/400x250/000/fff" alt="" />
                    <div class="caption">
                        <h4 class="group inner list-group-item-heading">
                            Company Name</h4>
                        <p class="group inner list-group-item-text">
                            Product description... Lorem ipsum dolor sit amet, consectetuer adipiscing elit,
                            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
                        <div class="row">
                            <div class="col-xs-12 col-md-6">
                                <p class="lead">
                                    $$$$</p>
                            </div>
                            <div class="col-xs-12 col-md-6 company-link-btn">
                                <a class="btn btn-success company-link" href="company-profile.html">View product</a>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    </div>

        <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>

        <script src="js/search-result.js"></script>
        
        
      </body>
    </html>

【问题讨论】:

    标签: php mysql search filter multiple-tables


    【解决方案1】:

    更改&lt;form action="" target="search-results.html"

    改变&lt;form action="search-results.html"

    Action 是要提交到的页面,target 定义它是否应该在新页面或同一页面窗口中。

    关于提交按钮,无需在按钮或文本中链接。提交按钮链接到表单,并将提交到您在表单标记的action 属性中设置的任何内容。

    更改&lt;button class="nl-submit" type="submit" href="search-result.html" name="submit"&gt;&lt;a href="search-result.html"&gt; Find a store&lt;/a&gt;&lt;/button&gt;

    收件人:&lt;button class="nl-submit" type="submit" name="submit"&gt;Find a store&lt;/button&gt;

    这有帮助吗?

    此外,将表单数据提交到 HTML 页面也不起作用。它只会加载 HTML 页面。您将需要一个 PHP 页面来提取表单数据、搜索数据库,然后将其显示在页面上。尝试在这里学习:W3schools PHP form handling tutorial

    编辑:

    Stack Overflow 可以帮助您解决编程问题。不是为你编程。你真的应该做一些关于 PHP 的教程。看看 W3Schools。您可能还想阅读 SQL。 (W3Schools)。以及 PHP 和 SQL 的组合:W3Schools PHP SQL

    您的 php 代码充满错误,不应使用。尝试编写新的时要注意的事项:使用 mysqli 而不是旧的已弃用的 mysql。你的数据库连接在哪里?您尝试执行 mysql_query TWICE。这将导致错误。 如果您遇到任何问题,请随时提出。但是,请尝试自己学习一些 PHP/SQL。有很多关于这方面的好和简单的教程,我链接了,你可以谷歌。

    祝你好运。

    【讨论】:

    • @PeterSmith 谢谢你,这真的很有帮助,但我实际上也在寻找 PHP 语法。就像您说的那样,HTML 页面的表单数据将不起作用。我有一种语法,我认为这在某种程度上是我应该使用的那种代码,但我只是不太确定该怎么做。
    • 我还刚刚添加了我认为应该使用的 PHP 文件,以及结果页面的 HTML 文件。顺便说一句,我真的很感谢你在这方面的帮助真的很重要。非常感谢@PeterSmith。很抱歉之前没有解释清楚。
    • @mods 看看我的编辑。帮不了你了,我可以给你写。但这不是堆栈溢出的工作方式,您不会那样学习。做一些关于 PHP SQL 的教程。祝你好运。克莱门茨。 (不是彼得史密斯,哈哈哈:))
    • 对不起,名字混淆了,哈哈哈,这是我第一次使用堆栈溢出。当然,我会尝试 w3schools。无论如何感谢磨坊的帮助,真的很感激:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    • 2017-06-17
    相关资源
    最近更新 更多