1

コードイグナイターを使用して JSON を生成します。これは私の現在の構造です:

モデル記事:

<?php
class Articles_model extends CI_Model {

 public function __construct()
     {
  $this->load->database();
 }

 public function get_articles()
{
  $this->db->order_by("HdOrder", "asc");
  $query = $this->db->get('articles');

  return $query->result_array();

}
} 

コントローラ:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Json extends CI_Controller {


 public function __construct()
 {
  parent::__construct();
  $this->load->model('articles_model');
 }

 public function index()
{
 $data['articles'] = $this->articles_model->get_articles();

 $this->load->view('json', $data);

}
}

そして私の見解:

<?php header('Access-Control-Allow-Origin: *'); ?>

<?php
echo '{"articles":'.json_encode($articles).'}';
?> 

ここで、この json に 2 つの get パラメーターを渡して、ページ単位で返せるようにする必要があります。私はphpでそれを行いましたが、動作します。以下は、CI なしの php コードです。

<?php
$link = mysql_pconnect("localhost", "user", "pass") or die("Could not connect");
mysql_select_db("dbase") or die("Could not select database");

//GET page/count
$count=10;$offset=0;
if (isset($_GET['count'])) $count=$_GET['count']*1;
if (isset($_GET['page']))  $offset=$_GET['page']*$count*1;

$arr = array();

$rs = mysql_query("SELECT * FROM bannersright 
                   ORDER BY HdOrder 
                   LIMIT $offset,$count"); #<-HERE

while($obj = mysql_fetch_object($rs)) {
$arr[] = $obj;
}

echo '{"bannersright":'.json_encode($arr).'}';

?>

CodeIgniter 構造体でこれを行うにはどうすればよいですか? $offset 変数と $count 変数を view-controller-model から渡して、mysql クエリの制限値として設定するにはどうすればよいですか? 実際、変数をコントローラーに渡す方法に関するチュートリアルを見つけましたが、同じ値をモデルに渡し、クエリを同じコントローラーに返す方法がまだわかりません。そして、それが問題への正しいアプローチであるかどうかはよくわかりません。

できるだけ簡単に解決したいと思います。

4

2 に答える 2

3

このようなパラメーターを渡すだけです........

public function controller_name($param1, $param2) {

      $result = $this->model->get_result($param1, $param2);

      $data = array();
      $data['result'] = $result;
      $this->load->view('view_file_name', $data);
}
于 2012-11-19T16:19:22.200 に答える
0

それ以外の場合は使用できます



    // if your url come like controller/someview/1/2
    $this->uri->segment(3) // will get 1
    $this->uri->segment(4) // will get 2


于 2012-11-25T17:49:28.483 に答える