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

问题描述 投票:-2回答:3

我是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) { }

php codeigniter
3个回答
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>";
                                    }
                                    ?>

0
投票

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

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

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!";
}

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.