Code Igniter未显示我的数据(但未显示错误)

时间:2018-03-07 23:30:38

标签: php mysql codeigniter

编辑:不能在外部托管和本地主机上工作......所以我一定做错了。

我正在使用Code Igniter,我有一个观点。我的视图页面没有显示错误,但也没有显示我请求的数据。我想,我的配置和数据库都很好... 任何的想法 ?我在这里做错了吗? 我在mac 4.4.1和最新版本的代码点火器3.1.7上使用最新版本的mamp。

先谢谢你们的帮助;)

查看

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
    <body>
<div>

         <p> <?php

        echo 'Trying to display:' . $data . ' yes?';

        ?> </p>


    </div>
</body>
</html>

模型

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

class Welcome_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function get_secret($id)
    { 
            $this->db->where('id', $id);
            $this->db->select('secret');
            $query = $this->db->get('tch_api');

            if ($query->num_rows==1) {
                foreach ($query->result() as $row) {
//  tried with this line too : $secret = $row->secret; and without the following one same result 
                    $data[] = $row->secret;
                }
                return $data;
            }

    }
}

控制器

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

class Welcome extends CI_Controller {

    public function index()
    {

        $this->load->model('welcome_model');

        $secret = $this->welcome_model->get_secret(1);
        $data = array(
            'data' => $secret
        );
        $this->load->view('welcome_message', $data);

    }
}

4 个答案:

答案 0 :(得分:1)

视图中的$ data将是一个数组 并且echo无法打印数组,请尝试使用print_r

视图

<?php
    defined('BASEPATH') OR exit('No direct script access allowed');
?>
<!DOCTYPE html>
<html lang="en">
    <head>
    </head>
    <body>
        <div>
            <p>
             <?php
                echo 'Trying to display:';
                print_r($data);

             ?>
             </p>
        </div>
    </body>
</html>

答案 1 :(得分:0)

你做了一些奇怪的事情。首先在你的get_secret函数中,你只需要一行,因此一个值可以用你的逻辑进行秘密判断;因此,您应使用row()而不是result()。此外,我希望您的问题是(1)当数据库中不存在$id的项目时,您的函数不返回任何内容;(2)您尝试回显数组(这将导致数组到字符串转换)。假设您只想获得secret $id = 1的值,您应该执行以下操作:

function get_secret($id)
{ 
        $this->db->where('id', $id);
        $this->db->select('secret');
        $query = $this->db->get('tch_api');

        if ($query->num_rows==1) {
            return $query->row()->secret;
        } else {
            return '';
        }

}

其余代码应该有效。如果您仍未看到任何结果,请验证是否存在$id = 1行,因为这可能是唯一的其他问题。

答案 2 :(得分:0)

控制器:

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

class Welcome extends CI_Controller {

    public function index()
    {

        $this->load->model('welcome_model'); 
        $data['data'] = $this->welcome_model->get_secret(1);
        $this->load->view('welcome_message', $data);

    }
}

模型:

function get_secret($id)
{ 
        $this->db->where('id', $id);
        $this->db->select('secret');
        $query = $this->db->get('tch_api'); 
        if ($query->num_rows==1) 
        {
             return $query->row->secret;
         }
         else
         {
             return "";
        }

}

只需在视图中显示

   <?php echo $data;?>

答案 3 :(得分:0)

你试过isset了吗? 请更改视图:

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');
?><!DOCTYPE html>
<html lang="en">
<head>
    <body>
<div>

         <p> <?php
              if (isset($data))
               { echo 'Trying to display:' . $data . ' yes?';} else { echo 'No data found' ;} ?> </p>


    </div>
</body>
</html>

<强>更新

假设您从上面的代码中想要从表中获取Id 1的数据并在您的视图中显示它。

请进行以下更改,然后重试。

<强>模型

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

class Welcome_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function get_secret($id)
    { 
            $this->db->where('id', $id);
            $this->db->select('secret');
            $query = $this->db->get('tch_api');
         return $query->result();

    }
}

&GT;

<强>控制器

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

class Welcome extends CI_Controller {

public function __construct()
    {
        parent::__construct();
        $this->load->model('welcome_model','wl');
    }


    public function index()
    {

        $data['secret'] = $this->wl->get_secret(1);
        $this->load->view('welcome_message', $data);

    }
}
?>

查看

<!DOCTYPE html>
<html lang="en">
<head>
<title>Data Fetching</title>
</head>
    <body>
<div>

         <p><?php
         //testing 1
         if(isset($data)){var_dump($data);}

         //testing 2
              if (isset($data))
               { echo 'Trying to display:' . $data . ' yes?';} else { echo 'No data found' ;} ?> </p>


    </div>
</body>
</html>

请尝试此操作并在此处发布您的结果..

如果问题已修复,请将其标记为答案。