コードイグナイターを使用して 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 クエリの制限値として設定するにはどうすればよいですか? 実際、変数をコントローラーに渡す方法に関するチュートリアルを見つけましたが、同じ値をモデルに渡し、クエリを同じコントローラーに返す方法がまだわかりません。そして、それが問題への正しいアプローチであるかどうかはよくわかりません。
できるだけ簡単に解決したいと思います。