我是php,mySql和CodeIgniter的新手。我正在尝试从mySql文件中读取并使用CodeIgniter将读取的数据写入JSON文件。我可以从mySql中读取数据并查看它并可以创建JSON文件,但是我已经完全陷入了我在互联网上阅读的所有不同信息。我一整夜都在寻找我写入JSON的代码,即控制器,视图,模型等。
这是“European_countries_model.php”
// Model to access database
class European_countries_model extends CI_Model {
public function __construct()
{
$this->load->database();
}
public function get_countries()
{
// get data from table "european_countries"
$query = $this->db->get('european_countries');
return $query->result();
}
}
这是我的观点有效(设置为查看数据库是否正常):
<?php
// TEST - display data
echo "Euopean Countries<br/>";
foreach ($countries as $country){
echo $country->euro_id." ".$country->title." ".$country->flag_name." ".$country->population." ".$country->avg_annual_growth." ".$country->date."<br/>";
}
?>
这是我的控制员“European_countries.php”
<?php
// European countries controller
class European_countries extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('European_countries_model');
// file helper contains functions that assist in working with files
$this->load->helper('file');
$this->load->database();
}
// pass all countries from model to view????
public function index()
{
$data['countries'] = $this->European_countries_model->get_countries();
//$this->load->view('european_countries_view', $data);
$response = array();
$posts = array();
foreach ($countries as $country)
{
$title=$country['euro_id'];
$flag=$country['flag_name'];
$population=$country['population'];
$avg_annual_gcountryth=$country['avg_annual_gcountryth'];
$date=$country['date'];
$posts[] = array('title'=> $title,
'flag_name'=> $flag_name,
'population'=>$population,
'avg_annual_gcountryth'=>$avg_annual_gcountryth,
'date'=>$date
);
}
$response['posts'] = $posts;
$fp = fopen('./eur_countries_array.json', 'w');
fwrite($fp, json_encode($response));
/*
if ( ! write_file('./eur_countries_array.json', $arr))
{
echo 'Unable to write the file';
}
else
{
echo 'file written';
}
*/
}
}
?>
我想我已经从跟踪php到mySql再到CodeIgniter再次回到这么多次,我已经把它搞砸了。任何帮助表示赞赏。
答案 0 :(得分:3)
您正在将countries对象循环为数组。看看这个
<?php
class European_countries extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('European_countries_model');
$this->load->helper('file');
$this->load->database();
}
public function index()
{
$countries = $this->European_countries_model->get_countries();
$data['countries'] = $countries;
$response = array();
$posts = array();
foreach ($countries as $country)
{
$posts[] = array(
"title" => $country->euro_id,
"flag" => $country->flag_name,
"population" => $country->population,
"avg_annual_gcountryth" => $country->avg_annual_gcountryth,
"date" => $country->date
);
}
$response['posts'] = $posts;
echo json_encode($response,TRUE);
//If the json is correct, you can then write the file and load the view
// $fp = fopen('./eur_countries_array.json', 'w');
// fwrite($fp, json_encode($response));
// if ( ! write_file('./eur_countries_array.json', $arr))
// {
// echo 'Unable to write the file';
// }
// else
// {
// echo 'file written';
// }
// $this->load->view('european_countries_view', $data);
}}?>