【问题标题】:PHP - Filtering by MySQL field valuePHP - 按 MySQL 字段值过滤
【发布时间】:2013-05-22 03:09:41
【问题描述】:

我有一个包含 3 个字段(类别、标题、图像)的行的表。起初,我创建了一个 foreach 循环,该循环返回一些包含每行信息的 html。但是,现在我实际上想创建一个场景,让我可以按类别“过滤”我的循环。

我的意思是,我想创建一个函数,它只会为类别字段具有特定值的行生成 html。我希望能够将此函数应用于类别的所有不同值。

任何帮助将不胜感激。

【问题讨论】:

  • 为什么不在您的查询中直接过滤呢?所以你的 php 代码中不需要任何过滤器?您所要做的就是为行显示一个 html。
  • 用mysql过滤好吗?
  • 是的,您可以在 where 子句中包含类似的内容,WHERE category <> NULL
  • 正如其他 cmets 所建议的并且我在回答中使用的那样,WHERE 语句是 MySQL 的基本功能之一,可让您过滤查询。你能把代码放在你查询mysql的地方吗?然后我可以告诉你如何修改它以匹配下面的查询..

标签: php mysql


【解决方案1】:

MySql查询解决方案:
在查询中使用 Where 语句,并保持 PHP 不变。
例如

Select * From table Where `category`="Filter Value";

让我知道这是否适合您,或者您是否仅限于使用 PHP 来过滤类别..

【讨论】:

  • 我想做 PHP 只是因为我不知道在 mysql 查询中做一个解决方案有多简单。
  • MySQL 用于查询。大声笑它的全部目的是检索数据。
【解决方案2】:

按照 asifrc 的建议使用WHERE 子句。

或者做这样的事情

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if($row['category'] == 'category1') {
      // do some stuff example
      $html_output .= '<p style="font-weight:bold">Important category: ' . $row['title'] . '</p>';
    } else if($row['category'] == 'category2') {
      // do other stuff
      $html_output .= '<p>Not important category: ' . $row['title'] . '</p>';
    }
}

【讨论】:

  • 是的,我在 PHP 中就是这样,但我想知道是否有一些不那么复杂的东西(我有很多类别)
  • 您对每个类别的类别处理是否必须是唯一的?有类别组吗?即,如果有 5 个类别,那么我们可以使用开关将它们拆分。或者,如果处理取决于类别的某些方面,那可能是一个线索。还有更多信息吗?
猜你喜欢
  • 2014-01-23
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 2016-06-15
  • 1970-01-01
  • 2019-11-09
  • 2021-12-30
  • 1970-01-01
相关资源
最近更新 更多