【问题标题】:PHP searching multiple rows in databasePHP在数据库中搜索多行
【发布时间】:2015-01-08 22:06:48
【问题描述】:

我想使用 PHP 和 MySQL 从一个数据库中搜索多个列。目前我有这个工作。

这是我的表格:

  <form action="products.php" method="POST">
  Search: <input type="text" name="search" />
  <input type="submit" value="submit"/>
  </form>

这是我当前的工作查询:

$query = "SELECT * FROM `GraphicsCards` WHERE `Brand` LIKE '%". $search . "%'";
$run = mysqli_query ($connection, $query);

如您所见,我的查询正在搜索我的数据库,以查看输入的用户搜索是否与“品牌”列中的任何内容匹配。

我还有其他列,例如“型号”“价格”等,并且希望能够搜索这些列以及“品牌”。是否有可能做到这一点是一个查询?

此外,我已经尝试过'AND'和'OR'以及'|| ' 但它们不起作用。

【问题讨论】:

  • 为什么 OR 不起作用?
  • 不知道什么时候添加 OR 查询不再显示数据:/
  • 如果$search来自用户输入,请确保它被正确转义,否则您将遇到SQL注入漏洞。出于这个原因,如果可以的话,最好切换到参数化查询。

标签: php search mysqli


【解决方案1】:

OR 会起作用,您只需正确操作即可。

$query = "SELECT * FROM `GraphicsCards`
    WHERE `Brand` LIKE '%". $search . "%'
        OR `Model` LIKE '%" . $search . "%'
        OR `Price` LIKE '%" . $search . "%'";

仅供参考,BrandModelPrice 是列,而不是行。

【讨论】:

  • 帕特里克你这个好人!!有用!谢谢你,上帝保佑:)
  • @AbdushSamadMiah 不客气。如果您可以将答案标记为已接受,因为它解决了您的问题,那将不胜感激。
  • 为上面的 FYI 喝彩,我会记住以供将来参考:)
  • 只是等待它允许我并且会尽快完成。干杯
【解决方案2】:

你应该试试:

$query = "
    SELECT * FROM `GraphicsCards`
    WHERE
        `Brand` LIKE '%". $search . "% OR `Model` LIKE %'" . $search . "%";
$run = mysqli_query ($connection, $query);

让我知道它是如何工作的。

【讨论】:

  • 您好 Asaf 感谢您的回复 Patrick 上面的回答解决了我的问题 感谢您的回复。干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多