从Codeigniter中的2个Tabels数据库创建选项

时间:2019-04-30 12:56:29

标签: php codeigniter

我有2个表格数据库:

1。类别表

enter image description here

2.table基于这些类别的选项。

enter image description here

我想基于类别创建选择组。

enter image description here

我的代码:

function config_cat($idVps){
		$this->db->select("*");
		$this->db->from("tbcategory_config as a");
		$this->db->join("tbconfig_option as b", "a.id_category = b.id_category");
		$this->db->where("id_vps",$idVps);
		$hasil = $this->db->get();
		return $hasil;
	}

<?php foreach($configcat->result_array() as $row):
									$category =$row['name'];
									$detailCon =$row['detail_config'];
							?>
							<div class="form-group col-md-12">
								<label><?php echo htmlentities($category, ENT_QUOTES, 'UTF-8'); ?></label>
								<select>
									<option><?php echo htmlentities($detailCon, ENT_QUOTES, 'UTF-8'); ?></option>
								</select>
							</div>
							<?php endforeach; ?>	

我希望输出中将显示选择选项 “升级内存” = 1. 1Gb,2。2Gb

“升级内核” = 1内核

但是实际结果是两次升级RAM (基于上面的第三张图片)

1 个答案:

答案 0 :(得分:0)

不一定是最佳方法,但是您可以通过不使用join子句来轻松解决此问题,并且可以使用带有父类别及其子类别的单独变量。

您没有显示您的控制器,因此提出建议并非完全简单,但可以尝试以下方法:

在您的控制器中: 由两个单独的模型调用填充两个单独的变量。一个带有categories表的内容,另一个带有options表的内容。两者都包含category_id字段是至关重要的

您认为: 您需要两个嵌套的foreach循环。最外层的循环遍历类别。最内层的循环选项。

<?php
foreach ($categories as $c)
{ ?
  <select name="<?php echo $c->category_id; ?>">
    <?php
    foreach ($options as $o)
    {
      if ($o->category_id == $c->category_id)
      { ?>
        <option value="<?php echo $o->option_id; ?>"><?php echo $o->option_name; ?>
</option>
      <?php 
      } ?>
  </select>
<?php
}
?>

更改以上内容以使用您自己的变量名。 这样,对于每个类别,您将有一个SELECT元素,其中填充了OPTION元素,与具有相同类别的选项一样多