Нужна помощь для извлечения данных из базы данных в php codeigntier - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь построить проект в 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
                }
            ?>

Я сделал это.Но когда я просматриваю веб-страницу, эти данные не отображаются. Пожалуйста, помогите решить эту проблему.

Ответы [ 4 ]

1 голос
/ 10 июня 2019

в вашем контроллере pass $data Переменная типа $this->load->view('homepage_view', $data);

public function index(){
    $this->load->model('Homepage_model');
    $result = $this->Homepage_model->get_data();
    $data['rs'] =  $result; 
    $this->load->view('homepage_view', $data);
}
0 голосов
/ 10 июня 2019

в модели

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"));
    $result = $query->result_array(); # change
    return $result; # change
}

В контроллере

public function index(){
    $this->load->model('Homepage_model');
    $result = $this->Homepage_model->get_data();
    $data['rs'] =  $result; # or  $data['rs']  = $this->Homepage_model->get_data(); assign directly 
    $this->load->view('homepage_view', $rs);
}

И В представлении foreach($rs as $rws){ будет работать

Убедитесь, что таблица не пуста.

0 голосов
/ 10 июня 2019

Просто измените $row_array() с $result_array()

return $this->db->get_where('cars', array('status' => "Available"))->result_array();

row_array() используется для извлечения только одной, тогда как $result_array() всех записей в виде ассоциативного массива

Подробнее о массив строк и массив результатов

0 голосов
/ 10 июня 2019

Здесь изменено в запросе

$query = $this->db->get_where('cars', array('status' => "Available"))->result_array();
return $query;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...