Array
(
)

Ver imagem conforme determinado estado

Hugo Simoes
   - 19 set 2014

Bom dia meus caros,
Pretendo que na coluna "status" apareça determinada imagem conforme o estado que apareça na coluna "estado" das diferentes linhas. Vi alguns codigos de else, mas não consigo ter bons resultados.
O que aconselham a fazer?
Obrigado
#Código

<table id="tabela" border="0">
  <tr class="coluna">
    <td bgcolor="#FFFF00">Status</td>
    <td bgcolor="#FFFF00">oco_Data_alerta</td>
    <td bgcolor="#FFFF00">oco_Hora_alerta</td>
    <td bgcolor="#FFFF00">oco_classificacao</td>
    <td bgcolor="#FFFF00">oco_local</td>
    <td bgcolor="#FFFF00">oco_freguesia</td>
    <td bgcolor="#FFFF00">estado</td>
    <td bgcolor="#FFFF00">categoria</td>
    <td bgcolor="#FFFF00">Opções</td>
  </tr>
  <?php do { ?>
    <tr class="coluna">
      <td>< // Imagem aqui conforme os estados "analise", "despacho de 1º alerta", "chegada ao local", "em curso", Em resolução", "encerrada"></td>
      <td><?php echo $row_Recordset1['oco_Data_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_Hora_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_classificacao']; ?></td>
      <td><?php echo $row_Recordset1['oco_local']; ?></td>
      <td><?php echo $row_Recordset1['oco_freguesia']; ?></td>
      <td><?php echo $row_Recordset1['estado']; ?></td>
      <td><?php echo $row_Recordset1['categoria']; ?></td>
      <td><a href="dispatch1.php?<?php echo $row_Recordset1['id_ocorrencia']; ?>=">Criar despacho</a> | Criar comunciação</td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>

Marisiana
   - 19 set 2014

As imagens estão armazenados no banco de dados?

Hugo Simoes
   - 19 set 2014

Olá Marisiana, as imagens não estão no banco de dados, mas sim na pasta "imagens".

Marisiana
   - 19 set 2014

Uma solução seria criar um atributo para armazenar o nome ou o caminho da imagem que deve aparecer em cada registro de acordo com o status.
Assim, quando vc inclui um registro na tabela vc inclui a informação da imagem de acordo com o status que está sendo inserido.
Na exibição, no código HTML, você pode utilizar uma variável que receba como parâmetro o nome da imagem ou o caminho da imagem.

William (devwilliam)
   - 19 set 2014

Cara eu uso um switch no PHP, segue essa ideia:

#Código

$valueStatus = "";
switch ($registro->statusAtual) :
case 'F':
	$valueStatus = "src='img/finalizado.png'";
	break;
case 'C':
	$valueStatus = "src='img/cancelado.png'";
	break;
case 'E':
	$valueStatus = "src='img/executando.png'";
	break;
default:
	$valueStatus  = "src='img/padrao.png'";
	break;
endswitch;

Hugo Simoes
   - 19 set 2014

Wiliam é isso mesmo que preciso, mas onde coloco esse codigo?

William (devwilliam)
   - 19 set 2014

Antes de construir as linhas com os dados da tabela, mas dentro do loop!

Na dúvida poste o código com o nome dos campos.

Hugo Simoes
   - 19 set 2014

A tabela será essa!


Citação:
Bom dia meus caros,


#Código

<table id="tabela" border="0">
  <tr class="coluna">
    <td bgcolor="#FFFF00">Status</td>
    <td bgcolor="#FFFF00">oco_Data_alerta</td>
    <td bgcolor="#FFFF00">oco_Hora_alerta</td>
    <td bgcolor="#FFFF00">oco_classificacao</td>
    <td bgcolor="#FFFF00">oco_local</td>
    <td bgcolor="#FFFF00">oco_freguesia</td>
    <td bgcolor="#FFFF00">estado</td>
    <td bgcolor="#FFFF00">categoria</td>
    <td bgcolor="#FFFF00">Opções</td>
  </tr>
  <?php do { ?>
    <tr class="coluna">
      <td>< // Imagem aqui conforme os estados "analise", "despacho de 1º alerta", "chegada ao local", "em curso", Em resolução", "encerrada"></td>
      <td><?php echo $row_Recordset1['oco_Data_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_Hora_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_classificacao']; ?></td>
      <td><?php echo $row_Recordset1['oco_local']; ?></td>
      <td><?php echo $row_Recordset1['oco_freguesia']; ?></td>
      <td><?php echo $row_Recordset1['estado']; ?></td>
      <td><?php echo $row_Recordset1['categoria']; ?></td>
      <td><a href="dispatch1.php?<?php echo $row_Recordset1['id_ocorrencia']; ?>=">Criar despacho</a> | Criar comunciação</td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>

<td><?php echo $row_oco['id_ocorrencia']; ?></td>
<td><?php echo $row_oco['data']; ?></td>
<td><?php echo $row_oco['hora_alerta']; ?></td>
<td><?php echo $row_oco['classificacao']; ?></td>
<td><?php echo $row_oco['local']; ?></td>
<td><?php echo $row_oco['freguesia']; ?></td>
<td><?php echo $row_oco['categoria']; ?></td>
<td></td>
</tr>
<?php } while ($row_oco = mysql_fetch_assoc($oco)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($oco);
?>

William (devwilliam)
   - 19 set 2014

Hugo é mais ou menos isso, observe que no switch como não sei o nome do seu campo que possui o status usei o nome fictício "$SEU_STATUS", com certeza vai precisar de ajustes de CSS para posicionar corretamente a imagem na célula. Outro detalhe, usei caminho e nome de imagens fictícios também, adeque conforme se cenário!

#Código

<tr class="coluna">
    <td bgcolor="#FFFF00">Status</td>
    <td bgcolor="#FFFF00">oco_Data_alerta</td>
    <td bgcolor="#FFFF00">oco_Hora_alerta</td>
    <td bgcolor="#FFFF00">oco_classificacao</td>
    <td bgcolor="#FFFF00">oco_local</td>
    <td bgcolor="#FFFF00">oco_freguesia</td>
    <td bgcolor="#FFFF00">estado</td>
    <td bgcolor="#FFFF00">categoria</td>
    <td bgcolor="#FFFF00">Opções</td>
  </tr>
  <?php 
  do { 
    $valueStatus = "";
    switch ($SEU_STATUS) :
    case 'F':
        $valueStatus = "src='img/finalizado.png'";
        break;
    case 'C':
        $valueStatus = "src='img/cancelado.png'";
        break;
    case 'E':
        $valueStatus = "src='img/executando.png'";
        break;
    default:
        $valueStatus  = "src='img/padrao.png'";
        break;
    endswitch;
  ?>
    <tr class="coluna">
      <td><img <?=$valueStatus?> ></td>
      <td><?php echo $row_Recordset1['oco_Data_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_Hora_alerta']; ?></td>
      <td><?php echo $row_Recordset1['oco_classificacao']; ?></td>
      <td><?php echo $row_Recordset1['oco_local']; ?></td>
      <td><?php echo $row_Recordset1['oco_freguesia']; ?></td>
      <td><?php echo $row_Recordset1['estado']; ?></td>
      <td><?php echo $row_Recordset1['categoria']; ?></td>
      <td><a href="dispatch1.php?<?php echo $row_Recordset1['id_ocorrencia']; ?>=">Criar despacho</a> | Criar comunciação</td>
    </tr>
    <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>

Hugo Simoes
   - 20 set 2014

Coloquei esse codigo, com as devidas alterações! No entanto, a imagem que aparece é apenas a default. Estou a fazer alguma coisa de errado?

#Código

<?php
  do {
    $classificacao = "";
    switch ($classificacao):
    case 'Incendio urbano':
        $classificacao = "src='imgges/status/2101_5.png'";
        break;
	case 'Incendio em veiculo':
        $classificacao = "src='imgges/status/2301_6.png'";
        break;
    case 'Acidente':
        $classificacao = "src='images/status/4305_5.png'";
        break;
    case 'Emergencia pré-hospitalar':
        $classificacao = "src='images/status/4105_5.png'";
        break;
	case 'Apoio':
        $classificacao = "src='images/status/9111_5.png'";
        break;
    default:
        $classificacao = "src='images/status/importancia_Reduzida.png'";
        break;
    endswitch;
  ?>

    <tr class="coluna">
      <td><?php echo $row_ocorrencias['data']; ?></td>
      <td><?php echo $row_ocorrencias['hora_alerta']; ?></td>
      <td><?php echo $row_ocorrencias['classificacao']; ?></td>
      <td><?php echo $row_ocorrencias['local']; ?></td>
      <td><img <?=$classificacao?> ></td>
    </tr>

William (devwilliam)
   - 20 set 2014

Ele está sempre caindo no default porque não está recebendo um valor para comparação.

Esse trecho do código você tem que passar o nome do campo que contém o status do chamado, no exemplo coloquei $SEU_STATUS:

#Código

switch ($classificacao):


Para atribuição da imagem você usa outra variável, como mostrei no exemplo:

#Código
$valueStatus = "";
    switch ($SEU_STATUS) :
    case 'F':
        $valueStatus = "src='img/finalizado.png'";
        break;
    case 'C':
        $valueStatus = "src='img/cancelado.png'";
        break;
    case 'E':
        $valueStatus = "src='img/executando.png'";
        break;
    default:
        $valueStatus  = "src='img/padrao.png'";
        break;
    endswitch;