php mysql 下拉列表

标签 php mysql drop-down-menu

我有一个 PHP 表单,它显示 MySQL 表中的数据。每行显然都有不同的数据,我想要做的是有一个下拉列表,显示与每行中的数据条目相关的数据。

例如,假设我有两个表。 Fruit 和 Fruit_Colors,如下:

enter image description here enter image description here

因此,如果我的 PHP 表单显示如下,名为“fruits”的 MySQL 数据将显示“Fruit”列中的数据。然后,根据“Fruit”字段中的 PHP 表单输出值,从 Fruit_Colors 表中获取颜色。所以每行的下拉列表都会不同。

enter image description here

我的 PHP 表单语法是:

<table id="hor-minimalist-a">
    <tr>
        <th>ID</th>
        <th>Fruit</th>
        <th>Color</th>
        </tr>
<? while($row = $fruits->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><? echo $row['id']; ?></td>
        <td><? echo $row['fruit']; ?></td>
        <td><SELECT NAME="fruitcolor" id="fruitcolor">
            <OPTION VALUE=0 >
             *// what goes here???*
            </option>
            </SELECT> 
        </td>
    </tr>
<? } ?>
</table>

任何关于如何完成此任务的建议将不胜感激。请记住,该表最多可以有 50 行,因此需要一种动态方式将“fruit”值传递到下拉列表。

我知道下拉列表总体的语法是:

    function fruitcolor_dropdown($db)  
  {    
    $result = $db->query("select color from Fruit_Color where Fruit=*'outputted value'*"); 
    return $result; 
  } 
  $colors= fruitcolor_dropdown($db); 
  while($row = $colors->fetch(PDO::FETCH_ASSOC)) {
  $color=$row["color"];
  $optionsfruitcolors.="<OPTION VALUE=\"$color\">".$color; 
  }

一如既往地感谢您的建议。感谢和问候。

最佳答案

当您可以在单个查询中执行两次连接和触发查询时,这将是个坏主意 - 你可以看到demo

$query = "select f.*,group_concat(color SEPARATOR '|') as fcolor from fruit F Left join fruit_color fc using (fruit) group by fc.fruit";

上面是您的查询,您将像下面这样循环它:

<? while($row = $fruits->fetch(PDO::FETCH_ASSOC)) { ?>
    <tr>
        <td><? echo $row['id']; ?></td>
        <td><? echo $row['fruit']; ?></td>
        <td><SELECT NAME="fruitcolor" id="fruitcolor">
            <OPTION VALUE=0 >
             <?php 
               $array = explode("|", $fcolor);
               $count = count($array);
               for($loop=0;$loop<$count;$loop) {
                 echo "<option>".$array[$loop]."</option>";
               }                                       
              ?>
            </option>
            </SELECT> 
        </td>
    </tr>
<? } ?>

关于php mysql 下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14139405/

相关文章:

php - MySQL从同一个表中选择两行

PHP MySQL内容保存到按id排序的数组

mysql - 如何直接从 MySQL 查询中获取两个和的百分比?

PHP MySQL 连接错误 - 实现重试逻辑

javascript - CSS- 扩展子元素但保持父元素的尺寸不变。创建下拉菜单

php - 在不破坏设计/样式的情况下在 PHPSpreadsheet 中从 excel 转换为 pdf

php - PHP 和 MySQL 无法登录

mysql - SQLQuery 插入查询仅影响一行

jquery - CSS Dropdown类问题+需要Jquery

javascript - 如何将数据库中的选定值设置到 Laravel 中的下拉列表/选择框中?