PHP网站搜索和显示项目

PHP网站搜索和显示项目,php,html,mysql,Php,Html,Mysql,我正在创建一个虚拟的在线商店来演示一些真实世界的功能,其中一个是在网站上搜索商品,例如 我已经编写了PHP代码来处理这个场景,但它不能正常工作。它所做的是匹配结果和结果数量,但它不显示它们,我当然不会这样做 一直试图在谷歌上寻找答案,但没有找到相应的解决方案或提示我的问题 下面我将列出我正在使用的代码: PHP代码(search.PHP): 可用 价格 说明 请登录购买此商品 HTML代码(index.php): 当前结果的打印屏幕: 正如你已经注意到的,它还说已经找到了3个结果,这是

我正在创建一个虚拟的在线商店来演示一些真实世界的功能,其中一个是在网站上搜索商品,例如

我已经编写了PHP代码来处理这个场景,但它不能正常工作。它所做的是匹配结果和结果数量,但它不显示它们,我当然不会这样做

一直试图在谷歌上寻找答案,但没有找到相应的解决方案或提示我的问题

下面我将列出我正在使用的代码:

PHP代码(search.PHP):


可用
价格
说明
请登录购买此商品


HTML代码(index.php):


当前结果的打印屏幕:

正如你已经注意到的,它还说已经找到了3个结果,这是正确的,考虑到我已经搜索过了,这是我产品的一个常见名称,但只找到了两个表,而且它们是空的

网站网址:

最后,我的产品表包括:产品\标识产品\名称产品\质量产品\价格产品\图像产品\设计产品\类型属性/列


任何人都可以发现我在这方面可能出了什么问题….?

首先,尝试删除此项

while ($query_row = mysql_fetch_row($query_search)) 
                {
                    echo $query_row['product_name'];

                }
我还注意到您的代码中有一些错误的输入:

  • table id=“display”id应该是唯一的。如果您对它进行迭代,但仍然希望它是一个id,请将display-n改为,例如,n是产品的唯一id。(或使用class=“display”代替id)

  • 您应该看看sql注入以及如何打败它们


    • 我宁愿这样做:

      $query = "SELECT product_name FROM products WHERE product_name LIKE %" . $search . "%";
      
      希望这会有帮助。然后使用foreach循环遍历结果,如下所示:

      foreach ($search as $key => $result){
            echo $result . '<br />';
      }
      
      foreach($key=>$result){
      回显$result.“
      ”; }
    • mysql\u fetch\u row($query\u search)
      返回一个普通数组,而不是一个关联数组,但您正试图使用键访问它的值-
      $query\u row['product\u name']
      。而是使用
      \u fetch\u数组

    • 有很多语法错误。函数名和参数列表之间有一个空格

    • 不要使用mysql。它们被弃用了(读作:死了)。改用PDO


    • 好的,谢谢你的回复,但是我将如何实现你建议的更改。为什么mysql\u fetch\u row($query\u search)返回一个普通数组…?@Tomazi你的意思是什么-'为什么mysql\u fetch\u row($query\u search)返回一个普通数组'?这是因为开发者已经决定这样做。阅读关于PDO的PHP手册。
      $query = "SELECT product_name FROM products WHERE product_name LIKE %" . $search . "%";
      
      foreach ($search as $key => $result){
            echo $result . '<br />';
      }