Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 基于结果的条件_数组()_Php_Codeigniter - Fatal编程技术网

Php 基于结果的条件_数组()

Php 基于结果的条件_数组(),php,codeigniter,Php,Codeigniter,我正在使用codeigniter,我想根据模型的返回值生成一个条件 模型如下: public function get_sentitems() { $query = $this->db->get('sentitems'); return $query->result_array(); } 这是控制器: public function sentitems() { $data['sentitems'] = $this->sms_mod

我正在使用codeigniter,我想根据模型的返回值生成一个条件

模型如下:

    public function get_sentitems()
{
    $query = $this->db->get('sentitems');
    return $query->result_array();
}
这是控制器:

    public function sentitems()
{
    $data['sentitems'] = $this->sms_model->get_sentitems();

    if($data['sentitems']['Status'] === 'SendingOKNoReport')
    {
        $data['status_message'] = 'Sent';
    }
    else
    {
        $data['status_message'] = 'Failed';
    }

    $data['title'] = ucwords('sent items');

    $this->load->view('templates/header', $data);
    $this->load->view('sms/sentitems', $data);
    $this->load->view('templates/footer');
}
if($data['sentitems']['Status'] === 'SendingOKNoReport')
{
    $data['status_message'] = 'Sent';
}
else
{
    $data['status_message'] = 'Failed';
}
这里是风景

    <h2><?php echo $title; ?></h2>
<table border="1" width="100%">
    <thead>
        <tr>
            <th>No.</th>
            <th>Tujuan</th>
            <th>Waktu</th>
            <th>Isi</th>
            <th>Ket.</th>
        </tr>
    </thead>
    <tbody>
    <?php foreach ($sentitems as $sentitems_item): ?>
        <tr>
            <td><?php echo $sentitems_item['ID']; ?></td>
            <td><?php echo $sentitems_item['DestinationNumber']; ?></td>
            <td><?php echo $sentitems_item['SendingDateTime']; ?></td>
            <td><?php echo $sentitems_item['TextDecoded']; ?></td>
            <td><?php echo $sentitems_item['Status']; ?></td>
        </tr>
    <?php endforeach ?>
    </tbody>
</table>

不
图娟
瓦克图
三军情报局
基特。
我有一个列Status,但为什么浏览器中的结果总是这样:

遇到PHP错误
严重性:注意
消息:未定义索引:状态
文件名:controllers/sms.php
行号:62


解决办法是什么?对不起,我的英语不好。

问题是,在控制器中,
$data['sentitems']
包含来自数据库的一系列结果,因此您无法使用
$data['sentitems']['Status']
获取这些结果。你真正拥有的是

$data['sentitems'][0]['Status']
$data['sentitems'][1]['Status']
$data['sentitems'][2]['Status']
等等

我认为此时最好的选择是从控制器中删除以下内容:

    public function sentitems()
{
    $data['sentitems'] = $this->sms_model->get_sentitems();

    if($data['sentitems']['Status'] === 'SendingOKNoReport')
    {
        $data['status_message'] = 'Sent';
    }
    else
    {
        $data['status_message'] = 'Failed';
    }

    $data['title'] = ucwords('sent items');

    $this->load->view('templates/header', $data);
    $this->load->view('sms/sentitems', $data);
    $this->load->view('templates/footer');
}
if($data['sentitems']['Status'] === 'SendingOKNoReport')
{
    $data['status_message'] = 'Sent';
}
else
{
    $data['status_message'] = 'Failed';
}
并修改模板中输出状态的行:

<td><?php echo $sentitems_item['Status'] == 'SendingOKNoReport' ? 'Sent' : 'Failed'; ?></td>


你看过$data['sentitems']实际上包含什么吗?它包含许多索引,例如
$data['sentitems']['ID']
$data['sentitems']['DestinationNumber']
$data['SendingDateTime']
$data['sentitems'['decodedtextd']
,以及
$data['sentitems'['Status]]
。并且它可以显示在视图中。但是不显示在控制器中,$data['sentitems']['Status']不存在,否则您不会得到错误。也许你应该试试
if(isset($data['sentitems']['Status'])&&$data['sentitems']['Status']==='sendingonoreport')
你可以看到结果:变量状态是可以在视图中显示,但不能在控制器中显示。我只想用我自己的文本更改文本
sendingonoreport
。你能告诉我怎么做吗?谢谢。如果我想在代码中使用3个条件[$StuttEMS[St] ] /代码>,例如:<代码> 'sDENGOK' < /COD>,<代码> 'sDungGoNoRePosi'和 sReungRebug < /C> >如果它变得更复杂,你可以考虑写一个助手来把你要得到的值翻译成你想要的值。您可以在控制器中实例化帮助器并将其传递到视图中。