Php CodeIgniter 3中未定义的变量

Php CodeIgniter 3中未定义的变量,php,database,codeigniter,Php,Database,Codeigniter,请在这方面帮助我…我正在学习CodeIgniter,我被这个错误卡住了。一定是有一些愚蠢的错误。 我正在为此使用xampp软件。 它不断弹出未定义的变量行 表名为“用户” 视图文件名为try 模型文件名为trydb 控制器文件名为condb 错误 A PHP Error was encountered Severity: Notice Message: Undefined variable: rows Filename: views/try.php Line Number: 12 Ba

请在这方面帮助我…我正在学习CodeIgniter,我被这个错误卡住了。一定是有一些愚蠢的错误。 我正在为此使用xampp软件。 它不断弹出未定义的变量行

表名为“用户” 视图文件名为try 模型文件名为trydb 控制器文件名为condb

错误

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: rows

Filename: views/try.php

Line Number: 12

Backtrace:

File: C:\xampp\htdocs\ciagain\application\views\try.php
Line: 12
Function: _error_handler

File: C:\xampp\htdocs\ciagain\application\controllers\Welcome.php
Line: 27
Function: view

File: C:\xampp\htdocs\ciagain\index.php
Line: 292
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

Filename: views/try.php

Line Number: 12

Backtrace:

File: C:\xampp\htdocs\ciagain\application\views\try.php
Line: 12
Function: _error_handler

File: C:\xampp\htdocs\ciagain\application\controllers\Welcome.php
Line: 27
Function: view

File: C:\xampp\htdocs\ciagain\index.php
Line: 292
Function: require_once
查看文件

<?php

    class Site_model extends Model {

        function getAll() {
            $q = $this->db->get('user');

            if($q->num_rows()>0) {
                foreach ($q->result() as $row) {
                    $data[] = $row;
                }
            return $data;
            }
        }


        }
        ?>
<?php

class Site extends CI_Controller {

    function index() {
        $this->load->model('trydb');
        $data['rows'] = $this->trydb->getAll();

        $this->load->view('try', $data);
    }

}
?>


连接数据库
模式文件

<?php

    class Site_model extends Model {

        function getAll() {
            $q = $this->db->get('user');

            if($q->num_rows()>0) {
                foreach ($q->result() as $row) {
                    $data[] = $row;
                }
            return $data;
            }
        }


        }
        ?>
<?php

class Site extends CI_Controller {

    function index() {
        $this->load->model('trydb');
        $data['rows'] = $this->trydb->getAll();

        $this->load->view('try', $data);
    }

}
?>

控制器文件

<?php

    class Site_model extends Model {

        function getAll() {
            $q = $this->db->get('user');

            if($q->num_rows()>0) {
                foreach ($q->result() as $row) {
                    $data[] = $row;
                }
            return $data;
            }
        }


        }
        ?>
<?php

class Site extends CI_Controller {

    function index() {
        $this->load->model('trydb');
        $data['rows'] = $this->trydb->getAll();

        $this->load->view('try', $data);
    }

}
?>

默认控制器

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->view('welcome_message');
    }
    public function tryagain(){

     $this->load->view('try');   
    }
}

这不是
错误
,而是一个通知

严重性:通知

要解决此问题,可以定义变量或禁用通知。我更喜欢第一个


为什么要在模型中加入foreach循环?您可以使用以下选项:

function getAll() {
        $q = $this->db->get('user');
        $data = $q->result();
        return $data;
        }
按照DS9的建议,在视图文件中使用下面的命令

if(isset($rows) && sizeof($rows)>0)
{
    foreach($rows as $r)
   {
   }
}

删除第12行}和?>之间的空格。这会有帮助的。此外,没有Codeigniter 4:)

您的模型文件名是
站点\ U模型
,为什么要加载
trydb
?@Dray好的,谢谢,但它仍然不起作用。因为我是第一次这样做,我需要在配置文件夹文件中做一些更改吗?谢谢你的建议,但是$data的值正在从控制器传递到视图,我可以创建那个变量吗?我想我的控制器文件代码有问题。谢谢你的回复,但我仍然收到相同的通知。我是否必须第一次编辑配置文件夹文件才能连接到数据库?请检查更新的代码,并告知是否出现任何通知。我已更新了代码,但没有从我的用户表打印任何输出。(没有任何通知)我已重新检查了您的代码。您使用了以下代码:Site\u model extends model。。您应该在最新版本的codeigniter中使用site_模型扩展CI_模型。你能发布网址吗?你真的要加载视图文件try.php吗?我已经检查了这个站点模型扩展了CI\u模型…但它仍然不工作