0

我正在使用codeigniter,这是我的观点:

        <select name="kode_promo_air" id="kode_promo_air" class="span3 input2">
            <option value="">-PILIH-</option>
            <?php
            $data = $this->app_model->get_promo_air();  

            foreach($data->result() as $t){
            ?>
                <option value="<?php echo $t->PRO_PRICE_CODE;?>"><?php echo $t->PRO_MST_NM;?> - <?php echo $t->PRO_AMT_CUST;?></option>
            <?php
            }
            ?>
        </select>   

这是 app_model -> get_promo_air()

function get_promo_air()
{
    $sql = "
                SELECT
                    c.PRO_PRICE_CODE,
                    a.PRO_MST_NM,
                    c.PRO_AMT_CUST
                FROM
                    promo_master a
                inner join  promo_type b on a.pro_type_id = b.pro_type_id
                inner join  promo_price c on a.PRO_MST_ID = c.PRO_MST_ID 
                WHERE sysdate() BETWEEN a.PRO_PRICE_DATE_FROM
                AND a.PRO_PRICE_DATE_TO
                AND b.PRO_TYPE_ID = 1       
            ";

    return $this->db->query($sql);  

}

问题是我在调试时无法在我的视图中获得 $data->result() :

<?php
                    $data = $this->app_model->get_promo_air();  

                    echo "<pre>";
                    print_r($data->result());
                    die();

?>              

                <select name="kode_promo_air" id="kode_promo_air" class="span3 input2">
                    <option value="">-PILIH-</option>
                    <?php
                    $data = $this->app_model->get_promo_air();  

                    foreach($data->result() as $t){
                    ?>
                        <option value="<?php echo $t->PRO_PRICE_CODE;?>"><?php echo $t->PRO_MST_NM;?> - <?php echo $t->PRO_AMT_CUST;?></option>
                    <?php
                    }
                    ?>
                </select>

我有 :

Array
(
    [0] => stdClass Object
        (
            [PRO_PRICE_CODE] => AAA001001
            [PRO_MST_NM] => Promo Air Asia
            [PRO_AMT_CUST] => 65000.00
        )

    [1] => stdClass Object
        (
            [PRO_PRICE_CODE] => AGI001001
            [PRO_MST_NM] => Promo Garuda
            [PRO_AMT_CUST] => 40000.00
        )

)

如何获得价值?因为我尝试使用foreach($data->result() as $t)它无法获取数据...任何解决方案将不胜感激..

4

8 回答 8

5

尝试返回result array喜欢

return $this->db->query($sql)->result_array();

或者在 foreach 循环中尝试像

foreach ($data->result_array() as $t) {
    // Do the stuff
}
于 2013-11-14T07:20:29.330 回答
3

返回结果数组();这将解决问题。

输出

数组([0] => 数组([id] => 1 [name] => Jared Leto)

[1] => Array
    (
        [id] => 2
        [name] => Scott Eastwood
    )

[2] => Array
    (
        [id] => 3
        [name] => Kate Mara
    )

[3] => Array
    (
        [id] => 4
        [name] => Holland Roden
    )

)

于 2017-02-05T18:33:09.437 回答
0

尝试这个:

$sql = "SELECT
             c.PRO_PRICE_CODE
             a.PRO_MST_NM,
             c.PRO_AMT_CUST
                FROM
                    promo_master a
                inner join  promo_type b on a.pro_type_id = b.pro_type_id
                inner join  promo_price c on a.PRO_MST_ID = c.PRO_MST_ID 
                WHERE sysdate() BETWEEN a.PRO_PRICE_DATE_FROM
                AND a.PRO_PRICE_DATE_TO
                AND b.PRO_TYPE_ID = 1       
            ";

$query = $this->db-query($sql);
return $query;

或者

return $query->result();

如果使用return $query->result(),则只需要foreach.

$data = $this->app_model->get_promo_air(); 

foreach($data as $t){

//Your code here

}
于 2013-11-14T07:30:09.337 回答
0

我有一个替代解决方案。

执行时,row_array 返回两倍的期望结果。例如,如果 content是输入,则输出是content content。然后我把|,$lastone用爆炸移除并将两者分开。

if ($query->num_rows() > 0)
    {
        $row = $query->row_array(); 

        $lastone= $row['column']."|";
    }

    list ($last, $before) = explode ("|", $lastone);

return $last;
于 2014-11-18T17:30:23.030 回答
0
$query->result();=$t=

Array
(
    [0] => stdClass Object
        (
            [PRO_PRICE_CODE] => AAA001001
            [PRO_MST_NM] => Promo Air Asia
            [PRO_AMT_CUST] => 65000.00
        )

   [1].........
------------------------------------------------------------------------------------

$t[0]=stdClass Object
        (
            [PRO_PRICE_CODE] => AAA001001
            [PRO_MST_NM] => Promo Air Asia
            [PRO_AMT_CUST] => 65000.00
        )
-------------------------------------------------------------------------------------------
$t[0]->PRO_PRICE_CODE; = AAA001001
----------------------------------------------------------------------------------------
于 2014-08-26T08:33:45.750 回答
0

model --> 在 app_model 中,像这样返回结果。

return $this->db->query($sql)->result();

View --> 然后就可以得到这样的数据了。

<?php foreach($data as $key): ?>

           <p>PRO_PRICE_CODE : <?php echo $key->PRO_PRICE_CODE; ?></p>

<?php endforeach; ?>
于 2015-05-17T20:20:40.150 回答
0

数组([0] => stdClass 对象([PRO_PRICE_CODE] => AAA001001 [PRO_MST_NM] => 亚洲航空促销 [PRO_AMT_CUST] => 65000.00)

[1] => stdClass Object
    (
        [PRO_PRICE_CODE] => AGI001001
        [PRO_MST_NM] => Promo Garuda
        [PRO_AMT_CUST] => 40000.00
    )

)

您可以使用 print($data_stdClass[0]->PRO_PRICE_CODE); 单独打印

于 2018-09-28T09:30:22.420 回答
0
print_r($data['0']->PRO_PRICE_CODE);  //you will get AAA001001
print_r($data['0']->PRO_PRICE_CODE);  //you will get AAA001001
print_r($data['0']->PRO_MST_NM);      //you will get Promo Air Asia
print_r($data['0']->PRO_AMT_CUST);    //you will get 65000.00

相似地,

print_r($data['1']->PRO_PRICE_CODE);  //you will get AGI001001
于 2019-09-24T08:14:58.570 回答