Ir ao conteúdo
  • Cadastre-se

Exibir imagem em formulario de alteração PHP / MySQL


Ir à solução Resolvido por DiF,

Posts recomendados

Olá Pessoal

Agora estou precisando exibir imagens no meu formulario de manutenção de cadastros,

seguem as linhas que se referem ao campo da imagem:

GetSQLValueString($_FILES['foto'], "image"),

(linha onde o formulario faz a verificação do tipo de dados, eu acho, padrão do Dreanweaver)

(quando eu crio o formulario no Dreanweaver, pos não consigo criar sozinho, ele define essa linha como $_POST, mesmo o campo sendo Blob)

<td rowspan="3"><input name="foto" type="image" id="foto" src="<?php echo $row_Recordset1['foto']; ?>" />

(linha do formulario onde deveria exibir a imagem gravada no registro do banco de dados)

ao invés de exibir a imagem, exibe a imagem em forma de códigos

conto com mais essa gentileza da galera!!!

lembrando que a minha intenção é armazenar imagens diretamente no campo do meu banco de dados

Deixa eu reformular a pergunta:

o meu formulario de alteração de registros tem essa linha onde deveria mostrar a imagem, mas mostra em forma de caracteres.

Há alguma coisa errada nessa linha e há a possibilidade de visualizar imagem em um formulario de alteração de dados?

<td rowspan="3"><input name="foto" type="image" id="foto" src="<?php echo $row_Recordset1['foto']; ?>" />

Link para o comentário
Compartilhar em outros sites

Olá amigo @Arley Fellipe, obrigado por responder

 

esse meu formulário é para alteração de dados,

ele faz a navegação entre os registros,

e eu estou tentando criar um campo para exibir imagens armazenadas nos registros,

estou armazenando as imagens diretamente no campo blob do banco de dados,

eu uso o Dreamweaver pois não tenho nenhum dominio sobre programação ainda...

Link para o comentário
Compartilhar em outros sites

  • Moderador

@xrogerinho

 

O método está errado. Armazenar as imagens no banco de dados  fará com que ele fique gigantesco.. talvez até promovendo uma certa lentidão na consulta.

O correto e ideal é que você armazene no banco de dados apenas a referência da imagem. Ou seja, o caminho dela/ ou apenas o nome da imagem,  e a imagem armazenada em um diretório no servidor.

é por isso que você recebe a imagem em forma de "dados".

Sugiro que altere o jeito que você está fazendo.

 

Não precisa ter o domínio na linguagem..  no google você consegue o auxilio e modelos de como fazer..  O dreamweaver só vai confundir a sua cabeça.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Valeu @dif, vou considerar como resolvido, é que a forma como estou tentando executar o trabalho está bem errado, o formulário é de alteração de dados e estou tentando puxar uma imagem para esse formulário, além de querer armazenar a imagem direto no banco, muito obrigado pelas dicas.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • Moderador

@xrogerinho

 

No banco de dados, tem  duas maneiras.

1) Uma é guardar em um campo o caminho da imagem inteira... para exibir ela basta fazer a consulta e no src da imagem dar um echo na variável que recebe o valor do campo..

2) Outra é, guardar no campo apenas o nome da imagem e a extensão..  e pelo php definir o caminho do diretório onde se encontra as imagens.. 

 

Vamos aos exemplos dos dois, primeiramente veja a imagem:

bd-img.PNG

 

Exemplo 1)

No campo img no registro ID 1, perceba que é armazenada o endereço completo da imagem. No php fica da seguinte maneira:

<table>    <th>Nome</th>    <th>E-mail</th>    <th>Imagem</th>          <?php         include 'conexao.php';         $consulta = mysqli_query($conexao, "Select * FROM usuario");         while($perfil = mysqli_fetch_object($consulta)):             echo "                   <tr>                      <td> $perfil->nome <td>                      <td> $perfil->email <td>                      <td> <img src='$perfil->img' alt='alguma coisa escrita'/><td>                   </tr>";          endwhile;       ?> </table>  

Veja a linha 13, referente a exibir a imagem.

 

Exemplo 2)

No campo img, do registro ID 2, note que foi armazenada a pena o nome da imagem e a extensão dela. Com isso no php precisa definir o local onde está as imagens da seguinte maneira e o restante é igual

<table>    <th>Nome</th>    <th>E-mail</th>    <th>Imagem</th>          <?php         include 'conexao.php';         $caminho = "http://www.seusite.com.br/imagens/";         $consulta = mysqli_query($conexao, "Select * FROM usuario");         while($perfil = mysqli_fetch_object($consulta)):             echo "                   <tr>                      <td> $perfil->nome <td>                      <td> $perfil->email <td>                      <td> <img src='$caminho . $perfil->img' alt='alguma coisa escrita'/><td>                   </tr>";          endwhile;       ?> </table>  

Veja a linha 7, referente a definição do caminho onde estarão as imagens.

Na linha 14,  no src,  inserimos a variável $caminho concatenada com a variável que recebe a imagem.

 

Se você fazer o teste assim:

echo $caminho . $perfil->img;

obterá o endereço:  http://www[ponto]seusite[ponto]com[ponto]br/imagens/foto.jpg

É por aí... agora é só você dar uma estudadinha e por para funcionar :)

 

abraço

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Fala amigo @dif!!!

 

Me dá mais uma dica:

 

eu estou conseguindo exibir uma foto fixa minha pagina php assim:

 

<img src="rogerio.jpg">

 

porém, essa minha página navega entre os registros, utilizando as funções $rows

 

então eu gravaria a foto na pasta principal com o nome da pessoa, e no campo da foto, exibiria a foto com o nome da pessoa, tipo assim:

 

<img src="$row['nome']>

 

tem como fazer esse comando funcionar dessa forma, usando o nome do cadastro e mostrando a foto com o nome dessa pessoa?

Link para o comentário
Compartilhar em outros sites

  • Moderador

@xrogerinho

 

Não sei se entendi bem..

 

você salva no diretório a foto da pessoa com o nome dela. certo?

Se você está pondo este elemento img dentro do php... dentro do echo, pode ser escrita assim...

Mas se você não esta colocando o elemento img  no php,  você precisa acrescentar  o echo na frente de $row.

 

Sinceramente não entendi bem a pergunta.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@dif,

 

é isso mesmo.

 

eu salvo a imagem, que é a foto da pessoa do cadastro no diretório do site.

 

então quando eu abrir o cadastro da pessoa, quero que a página "pegue" a foto da pessoa pelo nome,

 

com esse comando eu consigo exibir uma foto na minha página:

 

<img src="rogerio.jpg">

 

só que quando eu tento substituir o nome da imagem pela variável que irá buscar a imagem no diretorio com o mesmo nome do cadastro não funciona, por exemplo:

 

<img src="$row['nome']>

 

o que acontece? eu preciso "avisar" o comando para ele procurar um arquivo .jpg com esse nome no diretorio, tipo assim:

 

exibir o arquivo "nome" .jpg encontrado no diretorio. já tentei fazer isso:

 

$foto = $row['nome'].jpg

 

echo $foto

 

mas não funciona

Link para o comentário
Compartilhar em outros sites

Claro!

 

deixa te explicar:

 

essa pagina é pra gerar carteirinhas para os nomes cadastrados,

veja que as variáveis $row_recordset buscam os dados dos cadastros, mas não consigo trazer a foto

 

a minha ideia é gravar a foto no diretorio com o nome do cadastro e quando abrir a página pegar a foto do diretorio igual ao do cadastro

 

acho que estou perto disso, só falta indicar que tem uma foto JPG no diretório com o nome do cadastro

 

o formulário que você me sugeriu acho que mostra todos os registros do cadastro de uma vez  e esse formulário mostraria um cadastro por vez

 

a linha em questão é essa:

<td width="101" rowspan="5"><img src="rogerius.jpg" width="78"></td>

onde eu trocaria a imagem fixa pela variavel da pagina

<?php require_once('conexao.php'); $nome = $_POST['nome'];$maxRows_Recordset1 = 1;$pageNum_Recordset1 = 0;if (isset($_GET['pageNum_Recordset1'])) {  $pageNum_Recordset1 = $_GET['pageNum_Recordset1'];}$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;mysql_select_db($database_conexao, $conexao);$query_Recordset1 = "SELECT * FROM membresia WHERE nome LIKE '%$nome%'";$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);$Recordset1 = mysql_query($query_limit_Recordset1, $conexao) or die(mysql_error());$row_Recordset1 = mysql_fetch_assoc($Recordset1);if (isset($_GET['totalRows_Recordset1'])) {  $totalRows_Recordset1 = $_GET['totalRows_Recordset1'];} else {  $all_Recordset1 = mysql_query($query_Recordset1);  $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);}$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;$queryString_Recordset1 = "";if (!empty($_SERVER['QUERY_STRING'])) {  $params = explode("&", $_SERVER['QUERY_STRING']);  $newParams = array();  foreach ($params as $param) {    if (stristr($param, "pageNum_Recordset1") == false &&         stristr($param, "totalRows_Recordset1") == false) {      array_push($newParams, $param);    }  }  if (count($newParams) != 0) {    $queryString_Recordset1 = "&" . htmlentities(implode("&", $newParams));  }}$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Credenciais</title><style type="text/css">body {	background-image: url(credencial.png);	background-repeat: no-repeat;        background-size: 490px;       }body table tr td div {	color: #FFF;}body table tr td div {	font-family: Arial, Helvetica, sans-serif;}</style></head><body>  <p> </p>  <p> </p>  <p> </p>  <p> </p>   <table width="491" border="0" cellspacing="0">    <tr>      <td colspan="3"><div align="center">        <?php echo htmlentities($row_Recordset1['cargo']); ?>      </div></td>    </tr>    <tr>      <td colspan="3" height="13"></td>       </tr>    <tr>   <td width="67"><div align="center"></div></td>      <td width="320"><div align="center"><?php echo htmlentities($row_Recordset1['nome']); ?></div></td>   <td width="101" rowspan="5"><img src="rogerius.jpg" width="78"></td>       </tr>    <tr>      <td colspan="2"> </td>    </tr>    <tr>      <td colspan="2"> </td>    </tr>    <tr>      <td colspan="2"> </td>    </tr>    <tr>      <td colspan="2"> </td>    </tr>    <tr>      <td colspan="2"> </td>    </tr>     </table><table border="0" cellspacing="0">  <tr>       <td colspan="3">Filiação:<br />  <?php echo htmlentities($row_Recordset1['pai']); ?> / <?php echo htmlentities($row_Recordset1['mae']); ?>      </td>  </tr>     <tr>       <td width="163">Nacionalidade:<br />       <?php echo htmlentities($row_Recordset1['nacionalidade']); ?></td>       <td width="163">Naturalidade:<br />       <?php echo htmlentities($row_Recordset1['naturalidade']); ?></td>       <td width="163">Estado Civil:<br />       <?php echo htmlentities($row_Recordset1['civil']); ?></td>     </tr>     <tr>       <td>Nascimento:<br />       <?php echo date("d/m/Y",strtotime($row_Recordset1['nascimento'])); ?></td>       <td>Identidade:<br />       <?php echo htmlentities($row_Recordset1['identidade']); ?></td>       <td>Cpf:<br />       <?php echo htmlentities($row_Recordset1['cpf']); ?></td>     </tr>      <tr>       <td>Batismo:<br />       <?php echo date("d/m/Y",strtotime($row_Recordset1['batismo'])); ?></td>       <td>Congregação:<br />       <?php echo htmlentities($row_Recordset1['igreja']); ?></td>       <td>Emissão:<br />       <?php echo date("d/m/Y"); ?></td>     </tr>     <tr>       <td colspan="3"><div align="center">         <img src="assinatura.jpg" width="203" height="86" />         <br /></div>         VÁLIDO POR DOIS ANOS COM CARTA DE RECOMENDAÇÃO       </td>     </tr></table><br/>  <table width="490" border="0"><tr>        <td width="167"><div align="center">          <?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>            <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, 0, $queryString_Recordset1); ?>"><img src="./First.gif" /></a>            <?php } // Show if not first page ?>        </div></td>        <td width="167"><div align="center">          <?php if ($pageNum_Recordset1 > 0) { // Show if not first page ?>            <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, max(0, $pageNum_Recordset1 - 1), $queryString_Recordset1); ?>"><img src="./Previous.gif" /></a>            <?php } // Show if not first page ?>        </div></td>        <td width="167"><div align="center">          <?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>            <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, min($totalPages_Recordset1, $pageNum_Recordset1 + 1), $queryString_Recordset1); ?>"><img src="./Next.gif" /></a>            <?php } // Show if not last page ?>        </div></td>        <td width="167"><div align="center">          <?php if ($pageNum_Recordset1 < $totalPages_Recordset1) { // Show if not last page ?>            <a href="<?php printf("%s?pageNum_Recordset1=%d%s", $currentPage, $totalPages_Recordset1, $queryString_Recordset1); ?>"><img src="./Last.gif" /></a>            <?php } // Show if not last page ?>        </div></td>      </tr>  </table></form><table width="490" border="0" cellspacing="0">  <tr>    <td><div align="center"><a href="secretaria.php">      <input type="submit" name="retorna" id="retorna" value=" RETORNAR " />    </a></div></td>  </tr></table></body></html>
Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

@xrogerinho

Desculpe-me dizer, mas com o código assim.. fica extremamente fácil de se perder e errar alguma coisa.

 

Você disse que no meu exemplo anterior mostrava todos os dados de todos os registros.. sim mas como eu disse era um exemplo. para mostrar apenas o do usuário logado em si, era só acrescentar  a clausula 

WHERE id_usuario = $id_usuário

Sendo que esse $id_usuario seria o ID do usuário gravado em uma variável de sessão no momento do login.

 

Sobre o problema em si:

você faz isso: <img src="$row['nome']>

Mas apenas isso não serve. simplesmente não funciona.  

Do jeito que você quer, além daqueles dois métodos que eu recomendei de gravar em um campo no banco de dados o nome da foto seguida de sua extensão ou gravar o endereço completo(absolute path),  tem a opção de pegar o nome e concatenar com a extensão.

 

Como sua tabela esta fora do código php.. então é necessário acrescentar a palavra chave "echo" entre as tags de abertura e fechamento do php 

assim:

<td width="101" rowspan="5"><img src="<?php echo $row['nome'] .'.jpg'; ?>" width="78"></td> 

perceba que:

 

depois dos colchetes [  ], possui um ponto, abre aspas simples , a extensão do arquivo de foto " .jpg ", aspas, fecha tag php..

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...