CodeIgniter3控制器中如何获取数据库标题数据赋值给$text1
解决方法
直接修改代码实现需求,同时修正原代码里的变量名、模型调用错误:
public function ajax_list() { $list = $this->thesis_title->get_datatables(); $data = array(); $no = $_POST['start']; // 固定对比文本 $text2 ="test program simple levenshtein distance"; foreach ($list as $title_text) { $no++; $row = array(); // 从数据库当前记录中取出title赋值给$text1 $text1 = $title_text->title; // 计算当前title和text2的编辑距离 $distance = levenshtein($text1, $text2); $row[] = $no; $row[] = $title_text->id_title; $row[] = $title_text->title; $row[] = $distance; $data[] = $row; } $output = array( "draw" => $_POST['draw'], // 修正模型调用,和前面取数据的模型实例保持一致 "recordsTotal" => $this->thesis_title->count_all(), "recordsFiltered" => $this->thesis_title->count_filtered(), "data" => $data, ); // 输出JSON格式结果 echo json_encode($output); }
关键调整说明:
- 把
$text1的定义移到foreach循环内部,每次循环从当前数据库记录的title字段取值,替换原固定字符串 - 统一循环变量名:原代码循环用
$text_title但内部调用$title_text,现在统一为$title_text避免未定义变量错误 - 修正模型调用:原代码中
$this->title_thesis改为$this->thesis_title,和前面获取数据的模型实例保持一致,防止调用不存在的模型方法 - 编辑距离计算放在循环内,确保每条数据库记录都能得到对应的距离值
内容的提问来源于stack exchange,提问作者Adi
相关产品推荐
相关产品推荐

