从查询中选择SQL会返回错误的信息,代码初始化器

时间:2019-03-31 22:53:28

标签: php codeigniter

我正在使用codeigniter构建一个应用程序,此应用程序有一个配置文件页面,其中显示的所有信息取决于当前登录的用户。在配置文件页面上,我试图设置一个生物盒,以便每个用户都可以编写自己独特的简历,这将存储在数据库中。我当前编写的代码正在页面上显示结果,但是它不是我想要的正确结果。我编写的与该问题有关的代码如下。

在模型中:

public function get_profile_information() { 

    $query = $this->db->query("SELECT profileText from users WHERE 
    idNumber = ?", $this->session->userdata('username'));

    return $query->result_array();
}

在控制器中:

public function loginprocess() { 

    $username = $this->input->post('idNumber');
    $password = $this->input->post('passWd');

    $query = $this->db->query("select * from users where idNumber='".$username."' and passWd='$password'");

    $row = $query->num_rows();

    if ($row) {

        $this->session->set_userdata(array('username' => $username));
        $sessionID = $this->session->userdata('username');

        $data['title'] = 'Profile';
        $data['profiletext'] = $this->news_model >get_profile_information();
        $data['sessionID'] = $this->session->userdata('username');

        $this->load->view('templates/header', $data);
        $this->load->view('news/profile', $data);
        $this->load->view('templates/footer');

    } else { 

        $data['error'] = 'Invalid Login Details';
        $data['title'] = 'Login';

        $this->load->view('templates/header', $data);
        $this->load->view('news/login', $data);
        $this->load->view('templates/footer');
    }
}

在视图中:

<head>

<style type="text/css">

</style>

</head>

Welcome to the <?php echo $title; ?> page, <?php echo $sessionID; ?>

<?php var_dump($profiletext); ?>

<?php echo anchor('login/logout', 'logout'); ?>

在网页上,基于登录用户从数据库获取配置文件文本的查询给出了此结果

array(1) { [0]=> array(1) { ["profileText"]=> string(17) "Test Profile Text" } } 

我只是希望显示“测试配置文件文本”。我一直无法解决问题所在,我对Codeigniter和php还是很陌生,所以我不具备解决此问题的知识。

2 个答案:

答案 0 :(得分:1)

控制器:
在下面的行中进行少量更改

//$data['profiletext'] = $this->news_model >get_profile_information();//old line
$data['profiletext'] = $this->news_model->get_profile_information();//changes

型号:
仅获取“测试配置文件文本”,而视图中没有任何更改

public function get_profile_information() { 

    $query = $this->db->query("SELECT profileText from users WHERE idNumber = ".$this->session->userdata('username'));
    return $query->row('profileText');//changes
}

答案 1 :(得分:0)

您应该使用echo而不是var_dump()

  

说明:

     

var_dump(混合$ expression [,混合$ ...]):void此函数   显示有关一个或多个表达式的结构化信息   包括其类型和价值。探索数组和对象   递归地将值缩进以显示结构。

     

对象的所有公共,私有和受保护属性都是   在输出中返回,除非该对象实现__debugInfo()   方法(在PHP 5.6.0中实现)。

替换

<?php var_dump($profiletext); ?>

通过

<?php echo $profiletext[0]['profileText]; ?>

echo根据我们站点的要求直接打印变量。