Code Igniter возвращает пустой набор результатов, но num_rows (5) - PullRequest
0 голосов
/ 20 июля 2011

Ситуация / проблема

Я вытягиваю все записи из таблицы. Я передаю возвращенные данные на мой взгляд. Num_rows говорит 5, но набор результатов пуст, хотя в таблице есть записи.

Контроллер

public function index()
{
     $this->load->model('Accessmodel', 'access');

     $data['query'] = $this->access->get_access_roles();

     $this->load->view('common/header');
     $this->load->view('admin/access/index', $data);
     $this->load->view('common/footer');
}

модель

class Accessmodel extends Cruddy {
    function __construct() 
    {
        parent::__construct();
        self::$table = "EmployeeRoleAccess";
    }

    function get_access_roles()
    {
        return $this->db->get(self::$table);
    }
}

Соответствующая порция сырой

class Cruddy extends CI_Model {

protected static $table;

function __construct()
{

    parent::__construct();

}

function get_items()
{

    $this->db->from(self::$table);

    return $this->db->get();

}
* * 1013 вид
<div class="column-left">
    <div class="sub-section-left">
        <?php include_once APPPATH . 'views/admin/menu.php'; ?>
    </div>
    <div class="sub-section-left shadows">
        <?php include_once APPPATH . 'libraries/minical.php'; ?>
    </div>
    </div>
    <div class="column-right">  
    <div class="sub-section-right">
        <h1>Employee Role Access Templates<input class="create right" type="button" name="" value="New Access Role" onClick=""></h1>
        <?php var_dump($query) ?>
    </div>
</div>

var_dump запроса

object(CI_DB_mysql_result)#19 (8) {
  ["conn_id"]=>resource(11) of type (mysql link persistent)
  ["result_id"]=>resource(19) of type (mysql result)
  ["result_array"]=>array(0) { }
  ["result_object"]=>array(0) { }
  ["custom_result_object"]=>array(0) { }
  ["current_row"]=>int(0)
  ["num_rows"]=>int(5)
  ["row_data"]=>NULL
}

1 Ответ

2 голосов
/ 02 августа 2011

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

echo $Result['Name'];

, поэтому я использовал var_dump ($ Result), чтобы увидеть, что находится в переменной.Когда я увидел, что result_array был пуст, я начал думать, что он не возвращает данные ... это было НЕ так.Я просто не возвращал данные, используя result_array, так что, конечно, это пусто!Вы можете указать, какой способ вернуть данные с помощью codeigniter, по умолчанию это объект.

Ниже приведен пример кода, который я использовал в представлении, и он работает.Я должен признать, что у меня не было кофеина, когда я писал этот код этим утром .... мои извинения

if($query->num_rows() > 0) { 
    foreach($query->result() as $Result) {
        echo $Result->Name . "<br />\n";
    }
} else { 
    echo "There are no results!";
} 
...