Codeigniter - 数组和foreach循环

时间:2016-05-06 22:27:52

标签: php arrays codeigniter loops

三个星期前,我几乎无法说出什么是PHP,所以如果答案显而易见,请不要太苛刻:s

无论如何,我必须获得一些工作数据库,根据我的一个朋友的建议,我开始使用mysql和codeigniter框架将其作为一个网站。 到目前为止一切都那么好,我已经准备好了所有的东西,但是今天我觉得要在其中一个观点上改变一些东西,而我却无法弄清楚如何按照我的想法去做这将是最优雅的方式。

这是一个表格视图,显示单个主条目记录的不同实验室分析结果,与其运行的不同实验室无关:

控制器

function ver()
{
    if ($this->session->userdata('id_user') != '') {
        $id_geral = $this->uri->segment(3);
        $data['i'] = 1;
        $this->load->model('entradanimal_model');
        $data['main_content'] = 'descritivo';
        $data['analises'] = $this->entradanimal_model->get_descritivo_analises($id_geral);
        $data['labs'] = $this->entradanimal_model->get_labs();
        $this->load->view('includes/template', $data);}
    else {
            redirect('login');
        };

型号:

function get_descritivo_analises($id_geral)
{
    $query = $this->db->query("SELECT resultados.*, analises.* FROM resultados, analises WHERE resultados.id_geral='" . $id_geral . "' AND resultados.id_analises=analises.id_analises ORDER BY cast(substring_index(resultados.numerointerno, '/', - 1) AS signed INTEGER), cast(substring_index(resultados.numerointerno, '/', 1) AS signed INTEGER) ASC");
    return $query->result();
}
function get_labs()
{
    $query = $this->db->query("SELECT * FROM labs ORDER BY nome_lab");
    return $query->result();
}

查看:

<table border="1|0" class="table-hover" align="center">
    <?php foreach ($analises as $s) {
        echo '<thead>
    <tr>
        <th width="150" class="text-center" style="vertical-align: middle">Nº</th>
        <th width="150" class="text-center" style="vertical-align: middle">Nº Interno</th>
        <th width="150" class="text-center" style="vertical-align: middle">Data da Análise</th>
        <th width="250" class="text-center" style="vertical-align: middle">Análise</th>
        <th width="150" class="text-center" style="vertical-align: middle">Técnico Responsável</th>
        <th width="50" class="text-center" style="vertical-align: middle">Ver</th>
        <th width="50" class="text-center" style="vertical-align: middle">Editar</th>
        <th width="50" class="text-center" style="vertical-align: middle">Lâminas</th>

    </tr>
    </thead>
    <tbody>

            <td rowspan="4" class="center" style="...">'. $i++ .'</td>
            <td class="text-center">'.$s->numerointerno.'</td>
            <td class="text-center">'.$s->datadiagnostico.'</td>
            <td class="text-center">'.$s->metodo.'</td>
            <td class="text-center">'.$s->tecnicoresponsavel.'</td>
            <td rowspan="4" class="center" style="vertical-align: middle;"><a class="glyphicon glyphicon-search" style="..." href="/descritivo_lab/ver/'.$s->id_resultados.'"><i class="fa fa-edit"></i></a></td>
            <td rowspan="4" class="center" style="vertical-align: middle;"><a class="glyphicon glyphicon-pencil" style="..." href="/update_consulta/edit_lab/'.$s->id_resultados.'"><i class="fa fa-edit"></i></a></td>
            <td rowspan="4" class="center" style="vertical-align: middle;"><a class="glyphicon glyphicon-plus" style="..." href="/entrada_laminas/add_laminas/'.$s->id_resultados.'/'.$r->id_geral.'"><i class="fa fa-edit"></i></a></td>
        </tr>
        <tr>
        <th class="center" style="...">Resultado Lupa</td>
        <td colspan="3" class="center">'.$s->lupa.'</td>
        </tr>
        <tr>
        <th class="center" style="...">Resultado Macro</td>
        <td colspan="3" class="center">'.$s->macro.'</td>
        </tr>
        <tr>
        <th class="center" style="...">Resultado Micro</td>
        <td colspan="3" class="center">'.$s->micro.'</td>
        </tr>';
    } ?>
    </tbody>
</table>

我想要的是获得这个,但是根据不同的实验室,然后将视图分成不同的标签。如果我为每个实验室的控制器功能创建一个不同的数组,我可以这样做:

$data['lab1'] = $this->entradanimal_model->get_descritivo_analises($id_geral, 1);

并将模型更改为:

function get_descritivo_analises($id_geral, $id_labs){
    $query = $this->db->query("SELECT resultados.*, analises.* FROM resultados, analises WHERE resultados.id_geral='" . $id_geral . "' AND resultados.id_labs='" . $id_labs . "' AND resultados.id_analises=analises.id_analises ORDER BY cast(substring_index(resultados.numerointerno, '/', - 1) AS signed INTEGER), cast(substring_index(resultados.numerointerno, '/', 1) AS signed INTEGER) ASC");
    return $query->result_array();}
}

但我想知道我是否以及如何更动态地执行此操作,任何想法?

编辑:

我的意思是做像

这样的事情
$labs = $this->entradanimal_model->get_labs();

然后

foreach($labs['id_labs'] as $something) {
..... $this->entradanimal_model->get_descritivo_analises($id_geral, $something)

模型函数就像我上面写的那样:

function get_descritivo_analises($id_geral, $id_labs){
    $query = $this->db->query("SELECT resultados.*, analises.* FROM resultados, analises WHERE resultados.id_geral='" . $id_geral . "' AND resultados.id_labs='" . $id_labs . "' AND resultados.id_analises=analises.id_analises ");
    return $query->result_array();}
}

允许我根据$ id_labs列区分我粘贴到视图的数据,这样我就可以让视图相应地生成不同的选项卡 我确定我不是很明确,但这对我来说仍然有点混乱:s

0 个答案:

没有答案