Codeigniter根据数据库行计数填充复选框

时间:2014-12-22 04:26:13

标签: php codeigniter

我是Codeigniter及其发展的新手。我有一个名为diy的数据库和一个名为Tags的表 列:tagidcatogoryidtagnamequestionid。我已将值插入tagged和tagname。

在我看来,我检索tagname个值,并希望根据标记名填充复选框。但是我得到一个空数组。

askview.php(查看)

<?php
//load database here

this->db->where('tagname', '4');

$q = $this->db->get('Tags');
$data = $q->result_array();

var_dump($data);

// echo($data[1]['tagname']);


$chk_group =$data ;

//  var_dump($chk_group);

for ($i = 1; $i <= count($chk_group); $i++) {
   $val = $chk_group[$i];
   echo "<br>";
   echo '<input type="checkbox" value="' . $val . '" name="chk_group[]">' . $val;
   echo "</br>";
}
?>

输出为:array(0) { }

3 个答案:

答案 0 :(得分:1)

以下方式将起作用

https://www.codeigniter.com/user_guide/database/results.html

    <?php
    $query = $this->db->query('SELECT * FROM Tags');

    $co=1;
    foreach ($query->result() as $row) {
    $chk_group[$co]=$row->tagname;
     ++$co;

   }


   for ($i = 1; $i <= count($chk_group); $i++) {
   $val = $chk_group[$i];
echo "<br>";
echo '<input type="checkbox" value="' . $val . '" name="chk_group[]">' . $val;
                                        echo "</br>";
                                    }
                                    ?>

答案 1 :(得分:0)

代码必须正常运行, IF 有任何要处理的内容并在页面上显示为复选框!

更好的方法是检查您是否从查询中获取任何记录并相应地制作下一个流程!

this->db->where('tagname', '4'); // BTW, make sure it is not tagid ;)

$q = $this->db->get('Tags');
if($q->num_rows > 0){
    $data = $q->result_array();

    $chk_group =$data ;

    //  var_dump($chk_group);

    for ($i = 1; $i <= count($chk_group); $i++) {
       $val = $chk_group[$i];
       echo "<br>";
       echo '<input type="checkbox" value="' . $val . '" name="chk_group[]">' . $val;
       echo "</br>";
    }
}else{
    echo "There is no such tag available in our records!";
}

答案 2 :(得分:0)

你想从表格标签中选择tagname ='4'是正确的吗? 您的代码没有问题。我认为数据存在问题。