Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hugo Felipe de Souza Cruz

Como inserir imagens a partir de um diretório inserido no banco

Recommended Posts

todo o resto do código funciona exceto essa parte quando eu tento colocar uma imagem através de um diretório que eu cadastrei no banco de dados

<img src="<?php echo $imagem[1]; ?>" />

porem quando eu coloco assim

$imagem = 'imagens/2015/05/06/imagem.jpg';

<img src="<?php echo $imagem; ?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, no banco de dados, a coluna que contém o URL da imagem se chama "1"? A posição do array tem que ser o nome da coluna no banco de dados.

 

Por exemplo, seu banco de dados se chama "teste" (sem aspas).

 

Aí você cria uma tabela chamada "dados" (sem aspas)

 

E dentro desta tabela, você cria as suas colunas e a coluna que vai conter os endereços da imagem irá se chamar "url_imagem".

 

Você deve fazer assim em seu código para conseguir recuperar estes dados:

<?php
// Abre a conexão com o banco de dados
$conexao = mysqli_connect('localhost', 'usuario', 'senha', 'teste');
// O último parâmetro "teste", se refere ao banco de dados
// Seleciona os dados da tabela "dados"
$captura = mysqli_query($conexao, "SELECT * FROM `dados`");
// Transforma os dados em um array PHP
$dados = mysqli_fetch_array($captura);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Teste</title>
</head>
<body>
<img src="<?php echo $dados['url_imagem']; ?>">
<!-- A posição indicada no array é o nome da coluna, dentro da tabela "dados" no banco !-->
</body>
</html>

Tente assim e veja se funciona... :)

Compartilhar este post


Link para o post
Compartilhar em outros sites
if(isset($_GET['f'])):
$link = $_GET['f'];
$bindvalue[':link'] = $link;
$artigo = leituraEspecifica('artigos', 'WHERE link = :link', $bindvalue);
print_r($artigo);


endif;

Ele retorna

Array
(
[id] => 199
[titulo] => Um exemplo de artigo
[subTitulo] => Um exemplo de Subtitulo
[tags] => Tags, tags, tags
[descr] => dzfhdfghfxghxfdghfghrhgfghrfghfghfghfgh
[content] =>
tá curioso para saber mais da versão mobile doWindows 10? Então aproveite, pois a Build 10074 (10.0.12555.74) do sistema acaba de ter uma série de imagens
[categoria] => 1
[autor] => 64
[sendData] => 05/05/2015 | 06:28:56pm
[link] => um-exemplo-de-artigo2
[capa] => data/artigos/2015/05/05/um-exemplo-de-artigo.jpg
[status] => 2
)

Com o var_dump

array(12) {
["id"]=>
string(3) "199"
["titulo"]=>
string(20) "Um exemplo de artigo"
["subTitulo"]=>
string(23) "Um exemplo de Subtitulo"
["tags"]=>
string(17) "Tags, tags, tags "
["descr"]=>
string(39) "dzfhdfghfxghxfdghfghrhgfghrfghfghfghfgh"
["content"]=>
string(255) "
tá curioso para saber mais da versão mobile doWindows 10? Então aproveite, pois a Build 10074 (10.0.12555.74) do sistema acaba de ter uma série de imagens "
["categoria"]=>
string(1) "1"
["autor"]=>
string(2) "64"
["sendData"]=>
string(23) "05/05/2015 | 06:28:56pm"
["link"]=>
string(21) "um-exemplo-de-artigo2"
["capa"]=>
string(48) "data/artigos/2015/05/05/um-exemplo-de-artigo.jpg"
["status"]=>
string(1) "2"
}

Quando eu faço isso

<?php echo $artigo["capa"]; ?>

Ele retorna

data/artigos/2015/05/05/um-exemplo-de-artigo.jpg 

Na tag img

<img src="../../<?php echo $artigo["capa"]; ?>" />

Ele retorna

<img src="../../data/artigos/2015/05/05/um-exemplo-de-artigo.jpg"/>

Mas não pega a imagem porém quando eu pego esse mesmo diretório e coloco em uma variável e do um echo na src da imagem funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema é path relativo. Deve haver "../" a mais ou a menos. Você precisa conferir sua estrutura de diretórios.

 

O ideal seria usar sempre path completo, desde a raiz do servidor web. Por exemplo

 

 

<img src="/caminho/complato/para/data/artigos/2015/05/05/um-exemplo-de-artigo.jpg"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acabei de testar todo o diretório coloquei a pasta na raiz do index, tentei o mesmo diretório no html simples só colocando a tag e o src e funcionou, quando eu vou colocar no php ele não abre olha a minha função de banco de dados

function leituraEspecifica($tabela, $condicao, $bindvalue){
            $pdo = conectar();
            try {
                $sql = "SELECT * FROM {$tabela} {$condicao}";
                //prepara sql
                $lerCond = $pdo->prepare($sql);
                //define os bindValues
                foreach($bindvalue as $k => $v):
                        $lerCond->bindValue($k, $v);
                endforeach;
                //executa
                $lerCond->execute();
                if($lerCond->rowCount() > 0):
                    return $lerCond->fetch(PDO::FETCH_ASSOC);
                else:
                    return false;
                endif;
                
            } catch (PDOException $e) {
                echo "Erro :".$e->getMessage();
            }
        }

Aparentemente achei o problema

$a[':capa'] = 'data/artigos/'.$ano.'/'.$mes.'/'.$dia.'/'.$nome.'.'.$ext;

eu estava cadastrando desse jeito ai em cima, quando eu tentei colocar só o diretório puro sem variáveis ele funcionou, porém eu preciso das variáveis para criar o link.

Alguém pode me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu dei uma pesquisada e descobri como fazer

ao invés desse jeito

$a[':capa'] = 'data/artigos/'.$ano.'/'.$mes.'/'.$dia.'/'.$nome.'.'.$ext;

fazer desse jeito colocando as variáveis em uma oute variavel;

$url = 'data/artigos/'.$ano.'/'.$mes.'/'.$dia.'/'.$nome.'.'.$ext;
$a[':capa'] = $url;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, no banco de dados, a coluna que contém o URL da imagem se chama "1"? A posição do array tem que ser o nome da coluna no banco de dados.



Por exemplo, seu banco de dados se chama "teste" (sem aspas).



Aí você cria uma tabela chamada "dados" (sem aspas)



E dentro desta tabela, você cria as suas colunas e a coluna que vai conter os endereços da imagem irá se chamar "url_imagem".



Você deve fazer assim em seu código para conseguir recuperar estes dados:


  1. <?php
  2. // Abre a conexão com o banco de dados
  3. $conexao = mysqli_connect('localhost', 'usuario', 'senha', 'teste');
  4. // O último parâmetro "teste", se refere ao banco de dados
  5. // Seleciona os dados da tabela "dados"
  6. $captura = mysqli_query($conexao, "SELECT * FROM `dados`");
  7. // Transforma os dados em um array PHP
  8. $dados = mysqli_fetch_array($captura);
  9. ?>
  10. <!DOCTYPE html>
  11. <html>
  12. <head>
  13. <meta charset="UTF-8">
  14. <title>Teste</title>
  15. </head>
  16. <body>
  17. <img src="<?php echo $dados['url_imagem']; ?>">
  18. <!-- A posição indicada no array é o nome da coluna, dentro da tabela "dados" no banco !-->
  19. </body>
  20. </html>

acho que é assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.