2014-09-05 4 views
0

В моей базе данных в codeigniter у меня есть таблица, называемая хранилищем. Я хотел бы иметь возможность отображать мои строки в формате таблицы на моем представлении. И имейте это в виду по urlПоказать таблицу из базы данных

Я сделал модель и посмотрел, но не уверен, что поставить на контроллер.

Ошибка

Parse error: syntax error, unexpected '$data' (T_VARIABLE) in C:\Xampp\htdocs\codeigniter\codeigniter-cms\application\modules\admin\controllers\store\store.php on line 61 

Модель

<?php 

class Model_store extends CI_Model { 

    public function getStores() { 
     $query = $this->db->query("SELECT DISTINCT * FROM " . $this->db->dbprefix. "store"); 
     return $query->row(); 
    } 

} 

Просмотр Обновлено

<div class="row"> 
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
     <form action="" method="post" enctype="multipart/form-data" > 
     <?php foreach ($stores as $row) { ;?> 
     <tr> 
      <td><?php echo $row['store_id'];?></td> 
      <td><?php echo $row['name'];?></td> 
      <td><?php echo $row['url'];?></td> 
     </tr> 
     <?php } ?> 
     <?php endforeach; ?> 
     </form> 
    </div> 
</div> 

контроллер Обновлено

public function index() { 

$this->load->model('admin/store/model_store'); 

$stores = array(); 

$stores = $this->model_store->getStores(); 

$data['cancel'] = site_url('admin/dashboard'); 

return $this->load->view('store/store_list', $data); 
} 
+0

Почему вы не проходите через ids здесь? $ This-> model_store-> getStores(); '? –

+0

Что такое C: \ Xampp \ htdocs \ codeigniter \ codeigniter-cms \ application \ modules \ admin \ controllers \ store \ store.php line - 61? –

ответ

0

Реорганизованного весь код. Пожалуйста, проверьте,

Модель:

<?php 

class Model_store extends CI_Model 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
    }  

    public function getStores($store_ids) 
    { 
     $this->db->select('*'); 
     $this->db->distinct(); 
     $this->db->where_in('store_id', $store_ids); 
     $query = $this->db->get($this->db->dbprefix."store"); 

     if($query->num_rows > 0) 
      return $query->result(); 
     return false; 
    } 
} 


Контроллер:

class Store extends CI_Controller 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->model('admin/store/model_store'); 
    } 

    public function index() 
    { 
     $store_ids = array('1','2','3');  // Pass your store ids here 
     $data['store'] = $this->model_store->getStores($store_ids); 
     $data['cancel'] = site_url('admin/dashboard'); 

     $this->load->view('store/store_list', $data); 
    } 
} 


Вид:

<div class="row"> 
    <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> 
     <form action="" method="post" enctype="multipart/form-data" > 
     <?php foreach ($store as $row) { ?> 
     <tr> 
      <td><?php echo $row->store_id; ?></td> 
      <td><?php echo $row->name; ?></td> 
      <td><?php echo $row->url ;?></td> 
     </tr> 
     <?php } ?> 
     </form> 
    </div> 
</div> 


Какие изменения:

1) Зачет store_ids от Controller до Model.
2) Используется Active Records вместо Raw SQL Queries.
3) Возврат result() вместо этого на row(). Разница result() возвращает массив объектов или пустой массив при сбоях. row() возвращает единственную результирующую строку.
4) Синтаксическая ошибка в foreach петля.

+0

Как получить заказ по URL-адресу? – 2014-09-05 10:40:13

+0

Покажите мне URL. –

+0

Его Ok сейчас, но только что через пару ошибок ' PHP-ошибка была обнаружена Серьезность: Предупреждение Сообщение: Отсутствует аргумент 1 для Model_store :: getStores(), называемый в C: \ Xampp \ HTDOCS \ CodeIgniter \ codeigniter- КМВ \ приложения \ модули \ Admin \ контроллеры \ магазин \ store.php в строке 61 и определил Имя файла: магазин/model_store.php Порядковый номер: 5 ' – 2014-09-05 10:43:04

0
There few issues are in your code : 

    1. $data is not declared before use [ $data=array() ] 
    2. When getStores(); called no store id is been passed which will cause error in model. 
    3. In View there is no existence of $query so you cant make loop of it to show. 
    You should use $store of controller $data["store"] which is receiving the data from 
    model. 

    Hope you can understand it and make the rectifications to run it properly. Please let me know if need any further help. 
+0

У вас есть пример того, какой должна быть модель, и контроллер и вид? – 2014-09-05 10:29:14

+0

Я обновил сообщение сейчас, просто получите 'Parse error: синтаксическая ошибка, неожиданная 'endforeach' (T_ENDFOREACH) в C: \ Xampp \ htdocs \ codeigniter \ codeigniter-cms \ application \ modules \ admin \ views \ template \ store \ store_list.php на линии 21' – 2014-09-05 10:34:53

0

В модели:

$this->db->select("*"); 
if(!empty($store_id)) 
{ 
    $this->db->where("store_id",$store_id); //if where required at all  
} 
$this->db->from($this->db->dbprefix."store"); 


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

$data['store'] = $this->model_store->getStores(); // send store id when required 
$data['cancel'] = site_url('admin/dashboard'); 
$this->load->view('store/store_list', $data); 


В Вид:

foreach($store as $st) 
{ 
    echo $st["id"];//and print all 
} 

Надеюсь, что это сработает для вас, и Мой ответ поможет вам.