foreach返回同一行4次codeigniter

时间:2017-01-16 08:42:04

标签: php html mysql codeigniter

我正在使用CodeIgniter而我正在尝试填充<table>并且只获取相同的行4次。 我的模特:

$sql2=
    "SELECT *
    FROM puntos
    WHERE checklist_idchecklist='$idchecklist'";
    $qry2=$this->db->query($sql2);
    $puntos=$qry2->row();
    return $puntos

此查询返回2个4个属性的数组,我测试它在phpmyadmin上执行SQL查询。

我的控制器:

function verpuntos() {
    $this->load->model('checklistm');
    $puntos=$this->checklistm->obtenerpuntos();
    $this->load->view('plantilla/headerguardia');
    $this->load->view('checklist/lista', $puntos);
    $this->load->view('plantilla/footer');
}

我的观点:

$punto=array(
    'descripcion' => $descripcion,
    'lugar' => $lugar,
    'tipo' => $tipo,
    'urgencia' => $urgencia);

    <table class="table">
        <thead>
            <tr>
                <th>Descripcion</th>
                <th>Lugar</th>
                <th>Tipo</th>
                <th>Urgencia</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach($punto as $row) {
                echo '<tr>';
                    echo '<td>'.$descripcion.'</td>';
                    echo '<td>'.$lugar.'</td>';
                    echo '<td>'.$tipo.'</td>';
                    echo '<td>'.$urgencia.'</td>';
                echo '</tr>';
            } 
            ?>
        <tbody>
    </table>

这就是我得到的,同一行4次:
And this is what I'm getting, the same row 4 times

3 个答案:

答案 0 :(得分:0)

<table class="table">
 <tr>
 <th>Descripcion</th>
 <th>Lugar</th>
 <th>Tipo</th>
 <th>Urgencia</th>
 </tr>
 </thead>
 <tbody>
    <?php 
      echo '<tr>';
      foreach($punto as $row)
      {
        echo '<td>'.$row.'</td>';
      } 
      echo '</tr>';
    ?>
 </tbody>
<table>

答案 1 :(得分:0)

在codeigniter row()中获取对象格式的第一行。$puntos=$qry2->row();此语句仅获取object fromat中获取的数据的第一行。所以不需要使用foreach循环。试试吧......

          echo '<tr>';
          echo '<td>'.$puntos->descripcion.'</td>';
          echo '<td>'.$puntos->lugar.'</td>';
          echo '<td>'.$puntos->tipo.'</td>';
          echo '<td>'.$puntos->urgencia.'</td>';
          echo '</tr>';

有关详情,请参阅此处https://www.codeigniter.com/userguide3/database/results.html

答案 2 :(得分:0)

试试这个

       echo '<tr>';
       echo '<td>'.$punto['item_1_name'].'</td>';
       echo '<td>'.$punto['item_2_name']..'</td>';
      echo '<td>'.$punto['item_3_name']..'</td>';
      echo '<td>'.$punto['item_4_name']..'</td>';
       echo '</tr>';

item_1_name =返回的数组的索引名称