2015-12-25 52 views
1

请帮助我...我正在学习CodeIgniter,我陷入了这个错误。一定有一些愚蠢的错误。 我为此使用xampp软件。 它保持弹出未定义的变量行。CodeIgniter中的未定义变量3

表名是 '用户' 视图文件名是尝试 模型文件名是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 

查看文件

<title> 
Connecting data base 
</title> 
</head> 
<body> 
<?php 
foreach($rows as $r){ 
echo $r->ID; 
echo $r->Name;  
} 

?> 
    </body> 
</html> 

模态文件

<?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'); 
    } 
} 
+0

你的模型文件名是'Site_model',你为什么要加载'trydb'? – Dray

+0

@Dray好的谢谢,但仍然没有工作。我需要做一些配置文件夹文件的更改,因为我第一次这样做? –

回答

2

为什么你把foreach循环模型?你可以使用这个:

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

并按照DS9建议,在下面的视图文件中使用。

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

感谢您的回复,但我仍然收到相同的通知。我必须首次编辑配置文件夹文件以连接到数据库吗? –

+0

检查更新的代码,并让我知道是否有任何通知发生。 –

+0

我已经更新了代码,但没有任何输出从我的用户表中打印出来(没有任何通知) –

1

这不是error,它是一个通知

严重性:注意

要解决这一点,你可以定义的变量或禁用通知。首选首选。

一样,

if(sizeof($rows)>0) 
{ 
    foreach($rows as $r){ 
    } 
} 
+1

感谢您的建议,但$ data的值正在从控制器传递到视图,锄头是否可以创建该变量。我认为我的控制器文件代码有问题。 –

0

删除第12行上的}和?>之间的空格。这将有所帮助。也没有Codeigniter 4 :)