首页 > 解决方案 > 插入嵌套的for循环(我做错了什么)

问题描述

我的模特

在 content_for 表中仅插入 2 行

public function add($data, $content_role = array()) {    
    $this->db->insert_batch('contents', $data);        
    $count      = count($data);
    $insert_id  = $this->db->insert_id();  // Returning ID
    $last_id    = $insert_id + ($count-1);
    $f_data     = $insert_id;
    $l_data     = $last_id;

    if (isset($content_role) && !empty($content_role)) {
        while($f_data <= $l_data) {                
            $total_rec = count($content_role);                
            for ($i = 0; $i < $total_rec; $i++) {
                $content_role[$i]['content_id'] = $insert_id;
            }
            $f_data++;
        }

        $this->db->insert_batch('content_for', $content_role);
    }

}

标签: phpmysqlcodeigniter

解决方案


if 语句中的条件永远不会为真。当您调用该函数时,您正在初始化一个空数组。它永远不会被设置并且总是空的。如果您要这样做,甚至没有理由检查它。

<?php

    $content_role = array();

    if (isset($content_role) && !empty($content_role)) {
    echo 'You will never see me';        
    }else{
    echo 'Never set and always empty';    //You'll only ever get this
    }

?>

推荐阅读