【发布时间】:2019-10-24 12:09:48
【问题描述】:
我正在尝试在 php codeigniter 中构建一个项目。但我坚持从数据库中获取数据。
我正在使用 mysql、codeigniter-3.1.10 和 php-7.0.33。
数据库配置文件:
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '221b',
'database' => 'car',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
我的模特是
if (defined('BASEPATH') OR exit ('No direct script access allowed'));
class Homepage_model extends CI_Model{
public $result;
public $rs;
public function __construct(){
parent::__construct();
$this->load->database();
}
public function get_data($slug = FALSE){
if ($slug === FALSE) {
$query = $this->db->get('cars');
return $query->result_array();
}
$query = $this->db->get_where('cars', array('status' => "Available"));
return $query->row_array();
}
}
在模型文件中,当数据库字段“status”的值为“Available”时,我想从表中获取所有数据。 控制器文件:
defined('BASEPATH') OR exit('No direct script access allowed');
class Homepage extends CI_Controller{
public function __construct(){
parent::__construct();
}
public function index(){
$this->load->model('Homepage_model');
$rs = $this->Homepage_model->get_data();
$this->load->view('homepage_view', $rs);
}
}
我要显示数据的视图部分是:
foreach($rs as $rws){
//echo $rws['car_id'];
?>
<li>
<?php echo $rws['car_id'];?>
<a href="book_car.php?id=<?php echo $rws['car_id'] ?>">
<img class="thumb" src="cars/<?php echo $rws['image'];?>" width="300" height="200">
</a>
<span class="price"><?php echo 'Kshs.'.$rws['hire_cost'];?></span>
<div class="property_details">
<h1>
<a href="book_car.php?id=<?php echo $rws['car_id'] ?>"><?php echo 'Car Make>'.$rws['car_type'];?></a>
</h1>
<h2>Car Name/Model: <span class="property_size"><?php echo $rws['car_name'];?></span></h2>
</div>
</li>
<?php
}
?>
我已经做到了。但是当我浏览网页时,没有显示这些数据。请帮忙解决这个问题。
【问题讨论】:
-
在
get_data中你没有传递slug参数,所以第二个结果将返回并且该结果是row_array` 所以你不能在foreach中使用它所以返回result_array()而不是row_array() -
我已将 row_array() 更改为 result_array(),但没有任何反应。
-
打印是否从数据库获取数据的响应。
标签: php codeigniter