[英]SQL select from query returns incorrect information, 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還是很陌生,所以我不具備解決此問題的知識。
控制器:
在下面的行中進行少量更改
//$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
}
您應該使用echo
而不是var_dump()
描述:
var_dump(混合$ expression [,混合$ ...]):void此函數顯示有關一個或多個表達式的結構化信息,包括其類型和值。 遞歸地探索數組和對象,並縮進顯示結構的值。
除非對象實現__debugInfo()方法(在PHP 5.6.0中實現),否則對象的所有公共,私有和受保護屬性都將在輸出中返回。
更換
<?php var_dump($profiletext); ?>
通過
<?php echo $profiletext[0]['profileText]; ?>
echo
根據我們在站點中的要求直接打印變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.