php - SQL,PHP - 如何选择标题和当前标题的所有子标题?

标签 php html mysql sql

我需要一个选择查询来在我的电子商店中进行搜索。我有以下 mysql 表

id  |  product_id  |   param   |  value
 1  |      123     |   Head 1  |   v1
 2  |      456     |   Head 1  |   v2
 3  |      789     |   Head 1  |   v3
 4  |      abc     |   Head 2  |   v4
 5  |      def     |   Head 2  |   v5

我需要选择不同的“param”以及与该参数对应的值。

示例:

Head 1 - v1, v2, v3
Head 2 - v4, v5

我需要将其添加到HTML:

<h3>Head 1</h3>
<div class="vyber">
 <select>
  <option>v1</option>
  <option>v2</option>
  <option>v3</option>
 </select>
</div>

<h3>Head 2</h3>
<div class="vyber">
 <select>
  <option>v4</option>
  <option>v5</option>
 </select>
</div>

我的SQL:

SELECT p.*
FROM Parametre p
JOIN produkty pr ON p.ProduktID = pr.ProId      
WHERE pr.KATEGORIA_URL = '$Kategoria'
GROUP BY p.Hodnota
ORDER BY p.Param, p.Hodnota

这是PHP代码

$pamet = '';
$konec = '';
while($ParamVyhladavanieResult = mysqli_fetch_object($ParamVyhladavanie)){

  $Param = htmlspecialchars($ParamVyhladavanieResult->param);
  $Hodnota = htmlspecialchars($ParamVyhladavanieResult->value);
  $CisloHodnoty = $ParamVyhladavanieResult->id;

  if (($ParamVyhladavanieResult->param)!=$pamet)
  {
      $pamet = $ParamVyhladavanieResult->param;

      echo "
      <h3>".$Param."</h3>
      <div class=\"vyber\">
      <select class=\"bielePozadie\" style=\"height:35px;color:#000;border:1px solid grey;outline:none;width:100%\">
      <option value=\"0\">--nevybraté--</option>
      ";
      $konec = "</select>
      </div>";
  }

  echo "   <option value=\"$CisloHodnoty\">".$Hodnota."</option>
  ";
}
echo $konec;

最佳答案

如果您使用 MySQL,则可以使用 GROUP_CONCAT()

SELECT param, GROUP_CONCAT(value) value
  FROM table1
 GROUP BY param

输出:

|  PARAM |    VALUE |
|--------|----------|
| Head 1 | v1,v2,v3 |
| Head 2 |    v4,v5 |

这里是SQLFiddle 演示

然后,您可以在迭代结果集并构建 html 时轻松地 explode() value 列的值。

关于php - SQL,PHP - 如何选择标题和当前标题的所有子标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634132/

相关文章:

javascript - Ajax 成功功能无法正常工作

javascript - 如何将同一对象的多个图像绘制到单个 Canvas 上

php - paypal验证后不发送电子邮件

html - 将鼠标悬停在 Firefox 中的子元素上时

javascript - figcaption 的不透明度正在神秘地变化

mysql - sql查询以查找至少具有两种类型帐户的用户

php - 您将如何测试一个可以向查询添加数十个不同过滤器的类?

php - 使用 php 在引导模式对话框中处理编辑表单

php - 我该如何优化以下代码?

php - Laravel View Composer "Use of undefined constant"