Blz pessoal ?
Eu tenho uma tabelinha simples com contatos de uma agenda.Eu criei uma coluna no banco onde 0 representa um contato não favorito e 1 contato favorito.Até ai tudo bem.Na exibição dos contatos como eu faço para que a frente do contato apareça uma estrelinha apagada caso não seja favorito e uma estrelinha amarela caso seja favorito ?
Usando if…
<?php if ($favorito): ?>
<img src="estrelinha-amarela.jpg">
<?php else: ?>
<img src="estrelinha-vazia.jpg">
<?php endif; ?>
A variável $favorito irá trazer o valor que está na base, cabe a você ajustar o código com a forma que você busca os dados…
Você está usando mysqli, pdo, sql server ou o quê?
Assim podemos indicar exemplos
Hummm entendi cara.
Estou usando mysqli.Só uma duvida: eu consigo incluir esse trecho de codigo php dentro de um td da table ?
Vou mandar o trecho do codigo para entender melhor.É algo bem simples.
<?php
$conexao = mysqli_connect("localhost","root","" ) or die("Servidor não encontrado");
mysqli_select_db($conexao,"agenda") or die("Banco de dados não encontrado");
// $banco = mysqli_select_db("agenda") or die("banco de dados não encontrado");
$comandoSQL = "select * from contatos order by nome";
$resultado = mysqli_query($conexao,$comandoSQL) or die("Erro ao executar o SQL");
$linha = mysqli_fetch_array($resultado);
?>
<center> <h1>Contatos Cadastrados</h1></center>
<table>
<tr>
<td align="right" colspan="5" width="800" height="70">
<a href="incluir.php"><img src="imagens/incluir.jpg" style="width: 40px;"></a>
</td>
</tr>
</table>
<table border="1" align="center">
<tr>
<td width="200"><center>Nome</center></td>
<td width="200"><center>Email</center></td>
<td width="200"><center>Telefone Cel</center></td>
<td width="200"><center>Telefone Res</center></td>
<td width="200"><center>Facebook</center></td>
<td width="200"><center>Ações</center></td>
</tr>
<?php
while ($linha = mysqli_fetch_array($resultado)) {
echo "<tr>
<td>". $linha['nome']."</td>
<td>". $linha['email']."</td>
<td>". $linha['fone_cel']."</td>
<td>". $linha['fone_res']."</td>
<td>". $linha['facebook']."</td>
<td> <a href='favorito.php?favoritar=".$linha['id']."'>
<img src='imagens/estrela.png' style='width: 20px;'>
</a> </td>
</tr>";
}
?>
Por isso coloquei um formato diferente… é um outro jeito de usar if, while, for, etc, percebeu que tem um endif no final? você pode melhorar usar endwhile por exemplo junto com a imagem ficaria assim…
<?php
...
//$linha = mysqli_fetch_array($resultado);
// vamos trazer todas as linhas de uma vez...
$lista = mysql_fetch_all($resultado, MYSQLI_ASSOC);
// depois de guardar os dados numa martiz,
// a conexão pode ser fechada (recomendado)
mysqli_close($conexao);
?>
... html tabela...
<?php foreach ($lista as $item): ?>
<tr>
<td><?=$item['nome']?></td>
<td><?=$item['email']?></td>
<td><?=$item['fone_cel']?></td>
<td><?=$item['fone_res']?></td>
<td><?=$item['facebook']?></td>
<td>
<?php if ($item['favorito']): ?>
<a href="favorito.php?favoritar=<?=$item['id']?>">
<img src='imagens/estrela.png' style='width: 20px;'>
</a>
<?php else: ?>
<img src='imagens/estrela-vazia.png' style='width: 20px;'>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
.. tabela...
Perceba que lhe mostrei outras formas de buscar e mostrar os dados e misturá-los ao html…
Esse sinal <?= ?> é uma forma de imprimir variáveis na tela, seria o mesmo que usar…
<?php echo $item['nome']; ?>
Ou seja é um atalho (sintax sugar) do echo mas só funciona a partir da versão 5.4 do php senão me engano, pois precisa ser ativado no php.ini em versões anteriores (diretiva short_open_tag)
Bom que você vai conhecendo mais a linguagem e como ela se comporta, faça os testes e veja se te atende
Boa sorte!
1 curtida
Blz cara vou testar aqui.
Muito obrigado pelas explicações e ajuda.
1 curtida
Funcionou perfeitamente.
Muito obrigado cara.
1 curtida