Php 复选框从DB设置值

Php 复选框从DB设置值,php,codeigniter,Php,Codeigniter,所以情况是这样的: 我目前有一个数据库与电视节目的RSS提要。 提要(电视节目)表具有ID、名称、网络、提要和活动。 我在accounts表中设置了一个名为Favorites的字段,我认为电视节目的逗号分隔ID可能是个好主意,但我不再确定了 我目前正在寻找在CI中实现一个控制器,该控制器将查看Favorites字段中的DB,例如,如果它填充了104149150 如何将这些ID传输到视图中,以便将值设置为相应的显示 <?php foreach ($shows as $show) {

所以情况是这样的: 我目前有一个数据库与电视节目的RSS提要。 提要(电视节目)表具有ID、名称、网络、提要和活动。 我在accounts表中设置了一个名为Favorites的字段,我认为电视节目的逗号分隔ID可能是个好主意,但我不再确定了

我目前正在寻找在CI中实现一个控制器,该控制器将查看Favorites字段中的DB,例如,如果它填充了104149150

如何将这些ID传输到视图中,以便将值设置为相应的显示

    <?php foreach ($shows as $show) { ?>

             <div class="grid_1">
              <?  $data = array(
    'name'        => $show['name'],
    'id'          => $show['id'],
    'value'       => $show['name'],
    'checked'     => FALSE,
    );

echo form_checkbox($data); ?>

            </div>

            <div class="item"><?=form_label($show['name']);?></div>

                       <?php } ?>

视图当前在数据库中输出电视节目,每个节目旁边都有一个复选框。对于我来说,为收藏设置用户首选项的最佳方式是什么?这样我就可以根据用户偏好设置每个复选框的值

我希望我已经解释了我想要做好的事情


谢谢

您可以加载视图并向其发送变量/参数,如下所示:

$params['data'] = array(1 => 'hello');
$this->load->view('path/view.php', $params);
编辑: 要保存收藏夹,我建议创建一个新表(“收藏夹”),其中包含收藏夹id、用户id、显示id。。也许加上一个约会,也许还有其他的事情

在复选框所在的“显示”页面中,您可以执行以下操作:

<input type="checkbox" <?=(in_array(SHOW_ID, $favorites) ? 'checked' : null);?> />

查询后面的
数组($user\u id)
称为查询绑定,用于安全性。

Mike是对的,下面是一个使用CI的示例:)


“我以为逗号分隔……”。让我就此停止,我不知道如何将id从DB匹配到每个复选框。当您循环浏览所有可用的节目(希望您有某种类型的节目id)时,您可以查看该节目id是否匹配用户在其收藏夹中的任何节目。如果$favorites=array(10,15,20),则会回显“checked”值(是的,我有show id。谢谢,我想我明白了。我很快就会尝试。当我在这里时,我如何更新收藏夹?我是否必须更新与用户id匹配的每一行。如果我们使用数组进行检查,那么为什么不在一个字段中使用逗号分隔的格式?从长远来看,这将更容易。如果一个用户有50个收藏夹,它将在数据库中找到某个fav要比遍历数组等简单得多。让sql执行逻辑在未来将比php更快。
$q = $this->db->query('SELECT show_id FROM favorites WHERE user_id=?', array($user_id));
$params['favorites'] = $q->result_array();