为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用GROUP_CONCAT和EXPLODE函数在复选框中显示?

如何使用GROUP_CONCAT和EXPLODE函数在复选框中显示?

PHP
BIG阳 2023-08-11 10:55:51
我是 PHP 新手。所以我这里有几个问题:所以,这是我的“item_choice”表:╔══════════╦═════════╦═══════════════╗║  c_id    ║ item_id ║ choice_name   ║╠══════════╬═════════╬═══════════════╣║   1      ║ 100     ║   Set A       ║║   2      ║ 100     ║   Set B       ║║   3      ║ 100     ║   Set C       ║║   4      ║ 100     ║   Set D       ║               ╚══════════╩═════════╩═══════════════╝这是我的“item_subchoice”表:╔══════════╦═════════╦═══════════════╦═══════════════╗║  sc_id   ║ c_id    ║    option     ║    price      ║╠══════════╬═════════╬═══════════════╬═══════════════╣║   1      ║   1     ║   Fries       ║      4        ║║   2      ║   1     ║   Coleslaw    ║      4        ║║   3      ║   1     ║ Mac n Cheese  ║      5        ║║   4      ║   2     ║   Fries       ║      4        ║               ╚══════════╩═════════╩═══════════════╩═══════════════╝到目前为止,这是我的结果(方形的东西是复选框):Set A:╔═╗  ╚═╝ Fries,Coleslaw,Mac n Cheese  4,4,5我想要实现的目标:Set A:╔═╗  ╚═╝ Friese  4,╔═╗  ╚═╝ Coleslaw  4╔═╗  ╚═╝ Mac n Cheese 5这是我当前的代码:<div class="form-row">    <?php    if (isset($_GET['itemid'])) {        $choice_id = $_GET['itemid'];        $get_choice_id = "SELECT                            t1.*,                             GROUP_CONCAT(t2.sc_id) AS sc_ids,                            GROUP_CONCAT(t2.option) AS choice_options,                            GROUP_CONCAT(t2.price) AS choice_prices                          FROM                             item_choice t1                           LEFT JOIN item_subchoice t2 ON t2.c_id = t1.c_id                           GROUP BY t1.c_id";        }    }    ?></div>我也尝试过explode函数和array_merge,但我无法让它工作。提前致谢!
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您可能可以只进行正常的选择,并按集合排序 - 然后在循环结果时检查 PHP 中的集合是否已更改。


另请注意,addon-checkbox不能是这样的 ID,因为它不是唯一的 - 可以有多行,并且元素的 ID 必须是唯一的。


$current_set = null;

$query = $con->query("SELECT ic.*, isc.sc_id, isc.option, isc.price

                        FROM item_choice AS ic

                        LEFT JOIN item_subchoice AS isc 

                            ON ic.c_id = isc.c_id

                        ORDER BY ic.choice_name");

while ($row = $query->fetch_assoc()) {

    if ($current_set != $row['choice_name']) {

        $current_set = $row['choice_name'];

        echo '<h1>'.$current_set.'</h1>';

    }

    ?>

    <div class="form-group col-md-12">

        <hr style="height: 1px;">

        <label style='font-size:15px;'> Add Ons - <?= $row['choice_name'] ?>: </label>

    </div>

    <div class="form-group col-md-12">

        <input type="checkbox addon-checkbox" name='check_list[]' onclick="check(this)" value="<?= $row['sc_ids'] ?>" />

        <label><?= $row['choice_options'] ?> + <?= $row['choice_prices'] ?></label>

    <?php

}


查看完整回答
反对 回复 2023-08-11
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信