Codeigniter查询结果row_array重复

时间:2015-12-09 09:06:44

标签: php mysql codeigniter

我试图从数据库中获取一些记录,比如票证系统,它是从数据库结果下载的代码

$this->db->select('*');
            $this->db->from('tickets');
            $this->db->where('t_author_steam_id', $steamid);
            $query = $this->db->get();

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

                return $row;
            }

但它是重复的结果,并没有显示所有结果,只有一个。 there is result

2 个答案:

答案 0 :(得分:1)

试试这个

方法01

$this->db->select('*');
$this->db->from('tickets');
$this->db->where('t_author_steam_id', $steamid);
$query = $this->db->get();
$result = $query->result_array();

if(!empty($result)) # this will act as $query->num_rows() > 0
{
    return $result;
}

方法02

$this->db->select('*');
$this->db->from('tickets');
$this->db->where('t_author_steam_id', $steamid);
$this->db->group_by('t_author_steam_id'); # add this 
$query = $this->db->get();
$result = $query->result_array();

if(!empty($result)) # this will act as $query->num_rows() > 0
{
    return $result;
}

在视图中

<?php foreach($tickets as $items){ ?>
    <tbody>
        <th scope="row"><?php echo $items['t_id']; ?></th>
        <th scope="row">
            <?php if($items['t_lang'] == 1)
            {
                echo lang('polish');
            } elseif($items['t_lang'] == 2) {
                echo lang('english');
            } ?>
        </th>
        <td><?php echo $items['t_title']; ?></td>
        <td><?php echo $items['t_date']; ?></td>
        <td>
            <?php 
            if($items['t_status'] == 1) 
            {
                echo '<span class="label label-info" id="status">'.lang('items-status-1').'</span>';
            } 
            elseif($items['t_status'] == 2) 
            {
                echo '<span class="label label-warning" id="status">'.lang('items-status-2').'</span>';
            } 
            elseif($items['t_status'] == 3) 
            {
            echo '<span class="label label-Success" id="status">'.lang('items-status-3').'</span>';
            }?>
        </td>
        <td>Zobacz</td>
    </tbody>
<?php } ?>
  
    

方法1运行正常。您使用foreach循环的代码中存在问题

  

答案 1 :(得分:0)

$query->row_array()仅返回所有记录的第一行。如果要返回所有记录,请改用$query->result_array()