簡體   English   中英

$ row來自哪里?

[英]Where does $row come from?

我正在學習codeigniter,有一個問題。 這些代碼來自http://www.devshed.com/c/a/PHP/Paginating-Database-Records-with-the-Code-Igniter-PHP-Framework/

以下是型號和控制器。 它並沒有定義$ row但它仍然有效。 (原來有錯字,所以我解決了。)

Q1。 $ row來自哪里? Q2。 您能解釋一下get('users',5,$ rows);嗎? 用戶必須是sql中的表,並且限制為5,但是為什么我需要$ rows?

在模型中

// get 5 rows at a time
function getUsers($row)
{
$query=$this->db->get('users',5,$row);
if($query->num_rows()>0)
{
// return result set as an associative array
return $query->result_array();
}
}

在控制器中

$data['users']=$this->Users_model->getUsers($row);

以下是完整的代碼。

Users_model.php

<?php
class Users_model extends Model
{
function Users()
{
    // call the Model constructor
    parent::Model();
    // load database class and connect to MySQL
    // $this->load->database();
}
function getAllUsers()
{
    $query=$this->db->get('users');
    if($query->num_rows()>0)
    {
        // return result set as an associative array
        return $query->result_array();
    }
}
function getUsersWhere($field,$param)
{
    $this->db->where($field,$param);
    $query=$this->db->get('users');
    // return result set as an associative array
    return $query->result_array();
}
// get 5 rows at a time
function getUsers($row)
{
    $query=$this->db->get('users',5,$row);
    if($query->num_rows()>0)
    {
        // return result set as an associative array
        return $query->result_array();
    }
}
// get total number of users
function getNumUsers()
{
    return $this->db->count_all('users');
}
}

以下是用於控制器的users.php。

<?php 
class Users extends Controller{
function Users(){
// load controller parent
parent::Controller();
// load 'Users' model
$this->load->model('Users_model');
}
function display($row=0){
// load pagination library
$this->load->library('pagination');
// set pagination parameters
$config['base_url']='http://127.0.0.1/ci_day4/index.php/users/display/';
$config['total_rows']=$this->Users_model->getNumUsers();
$config['per_page']='5';
$this->pagination->initialize($config);
// store data for being displayed on view file
$data['users']=$this->Users_model->getUsers($row);
$data['title']='Displaying user data';
$data['header']='User List';
$data['links']=$this->pagination->create_links();
// load 'testview' view
$this->load->view('users_view',$data);
}
}

$ row是控制器的顯示方法中的默認值為0的參數。

第二和第三個參數是限制和偏移量(請參見此處: http : //codeigniter.com/user_guide/database/active_record.html )。 因此,第二個參數(限制)定義返回多少行(最大),第三個參數(偏移量)定義從結果集中的哪一行開始。 因此,例如,如果您有10行,並將限制設置為5,則偏移量0將返回前5,偏移量5將返回后5(第二頁)行。

顯示方法的參數來自地址,它是/ display /之后的一段(請參閱此處: http : //codeigniter.com/user_guide/general/controllers.html#passinguri )。

哦,感謝您將我指向這個框架,這看起來像是一個不錯的框架,前段時間有人問我這樣的事情,現在我知道了;)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM