无法显示数据结果codeigniter

时间:2018-03-16 16:15:13

标签: php html mysql codeigniter codeigniter-3

我无法显示它所说的数据未定义的变量:avg 。这是我的剧本:

我的控制员:

public function rate_config() {
        $rt = $_POST['hasil_rating'];
        $content["hasil_rating"] = $rt;

        $this->db->insert("tb_rating", $content);
        redirect("rate/index?status=tambah_success","refresh");

        $data['avg'] = $this->db->select_avg("hasil_rating")
                                ->get("tb_rating");
        $this->load->view('rating', $data);
}

和视图:

<form method="post" action="<?php echo base_url('rate/rate_config');?>" enctype="multipart/form-data">
    <input class="rating" name="hasil_rating" data-stars="5" data-step="0.5">
    <div class="form-group" style="margin-top:10px">
        <button type="submit" class="btn btn-success">RATE</button>
    </div>
    <div>
</form>
        <label class="label label-primary"><?=$avg['hasil_rating']?></label>
    </div>
<hr>
$ avg ['hasil_rating'] 用于显示 $ data ['avg']

中的数据 我应该使用模特吗?我不使用模型,因为它会节省很多时间。谢谢你。

3 个答案:

答案 0 :(得分:0)

在您的代码中:

    public function rate_config() {
    $rt = $_POST['hasil_rating'];
    $content["hasil_rating"] = $rt;

    $this->db->insert("tb_rating", $content);

    /*==================Here====================*/
    redirect("rate/index?status=tambah_success","refresh");

    $data['avg'] = $this->db->select_avg("hasil_rating")
                            ->get("tb_rating");
    $this->load->view('rating', $data);
   }

你在php获取$ data ['avg']之前已经重定向。尝试删除该重定向并查看。

答案 1 :(得分:0)

给你一个建议。

您应该使用model来执行与数据库相关的活动,否则使用codeigniter框架是没有意义的,当您使用codeigniter时,请尝试使用其最大功能。

您应该查看一次文档以获取更多详细信息。(https://www.codeigniter.com/user_guide/)

通过查看代码,我注意到您忘记了获取结果。 result_array()用于以数组格式提取多行。

$data['avg'] = $this->db->select_avg("hasil_rating")->get("tb_rating")->result_array();

用于显示

 echo $avg[0]['hasil_rating'];

如果是单行,那么应该使用 row(),它会将结果作为对象

$data['avg'] = $this->db->select_avg("hasil_rating")->get("tb_rating")->row();

用于显示

echo $avg->hasil_rating;

答案 2 :(得分:0)

首先,您无法将数据发送到视图中,因为重定向是在发送数据之前执行的。

其次,要从数据库中获取结果,您应该阅读:

https://www.codeigniter.com/user_guide/database/results.html?highlight=result

在那里,您可以通过示例获得清晰的概念。

因此,如果您想获取单个结果行,请使用

appearance

例如,

row() // it returns an object.
row_array // it returns an array

删除或取消注释此行。

$data['avg'] = $this->db->select_avg("hasil_rating")
                            ->get("tb_rating")->row_array();