Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用CodeIgniter传递变量并显示唯一信息_Php_Codeigniter - Fatal编程技术网

Php 使用CodeIgniter传递变量并显示唯一信息

Php 使用CodeIgniter传递变量并显示唯一信息,php,codeigniter,Php,Codeigniter,我是CodeIgniter的新手,在制作URL链接和显示数据库中的数据时遇到了问题 我有一个州(马萨诸塞州)的数据库。我在马萨诸塞州也有几个城市(波士顿、布罗克顿、剑桥和西牛顿) 我的第一个目标是展示马萨诸塞州。我用下面的语法实现了我的目标 我的问题是:当有人点击“马萨诸塞州”时,我想显示该州的城市。我该怎么做呢?下一步是什么 我的控制器: <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

我是CodeIgniter的新手,在制作URL链接和显示数据库中的数据时遇到了问题

我有一个州(马萨诸塞州)的数据库。我在马萨诸塞州也有几个城市(波士顿、布罗克顿、剑桥和西牛顿)

我的第一个目标是展示马萨诸塞州。我用下面的语法实现了我的目标

我的问题是:当有人点击“马萨诸塞州”时,我想显示该州的城市。我该怎么做呢?下一步是什么

我的控制器:

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

class Site extends CI_Controller {

    public function index(){
        $this->load->model('model_data');
        $data["results"] = $this->model_data->getState();
        $this->load->view('view_home',$data); 
    }

}
我的家:

<?php echo doctype("html5");?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Home View</title>
</head>
<?php
foreach ($results as $row){
    $state = $row->state;
    echo $state.'<br>';
    /*
    Notes to myself: Do I have to pass a URI segment? but do I pass the variable of $state
    */
    echo anchor("",$row->state,array('title'=>$row->state));
}
?>
<body>
</body>
</html>

主视图
$query=$this->db->get('states')-不应该是$query=$this->db->get('state')吗

foreach($结果为$行){ $state=$row->state->city; echo$状态


然后,编辑您的函数以获取城市,或者创建另一个函数以获取该州的城市。或者,将数据库表全部更改,并按ID连接表并回显匹配ID的城市。

根据您当前的数据库,您可以在
站点
控制器中添加另一个方法以显示该州的城市。首先,您的链接应该是这样的(使用
站点
控制器和
获取城市
作为方法):

这将生成类似以下内容的链接:

<a href="http://yourDomain.com/site/getCities/Massachusetts" title="Massachusetts">Massachusetts</a>
现在,您可以在
站点
控制器中添加如下方法:

public function getCities($state = null)
{
    if(is_null($state)) return false;
    $this->load->model('Model_data');
    $data['cities'] = $this->getCitiesByState($state);
    $this->load->view('showCities');
}
在您的
Model\u数据
Model中,添加方法
getCitiesByState
以按州名称获取所有城市:

public function getCitiesByState($state)
{
    // load database if not autoloaded
    // assumed, your table name is cities
    $query = $this->db->get_where('cities', array('state' => $state));
    if($query->num_rows()) return $query->result();
    return null;
}
然后在视图(showCities.php)中:

if(isset($cities)&&!is_null($cities))
{
回声“城市的城市”。$Cities[0]->state.“
”; foreach($cities作为$city) { echo$city->id。“$city->city。”
”; } }
@mscmc-如果你喜欢他的答案,你会很高兴接受它。@PédeLeão我该怎么做?我试图“投票”他的回答,但我不能。请建议。
<a href="http://yourDomain.com/site/getCities/Massachusetts" title="Massachusetts">Massachusetts</a>
<a href="http://yourDomain.com/index.php/site/getCities/Massachusetts" title="Massachusetts">Massachusetts</a>
public function getCities($state = null)
{
    if(is_null($state)) return false;
    $this->load->model('Model_data');
    $data['cities'] = $this->getCitiesByState($state);
    $this->load->view('showCities');
}
public function getCitiesByState($state)
{
    // load database if not autoloaded
    // assumed, your table name is cities
    $query = $this->db->get_where('cities', array('state' => $state));
    if($query->num_rows()) return $query->result();
    return null;
}
if(isset($cities) && !is_null($cities))
{
    echo "Cities of " . $cities[0]->state . "<br />";
    foreach ($cities as $city)
    {
        echo $city->id . " " . $city->city . "<br />";
    }
}