三个星期前,我几乎无法说出什么是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