Ir ao conteúdo

PHP Codigo para upload de imagens e comentarios


Ir à solução Resolvido por DiF,

Posts recomendados

Postado

boa noite galera, eu to tentando criar um sistema de upload de imagens e comentarios. To fazendo a seguinte rota submit button click -> php -> db -> local onde o arquivo vai ser armazenado.

Eu tentei o codigo abaixo mas o registro não foi pra db. Alguem manja?

 $sql = "INSERT INTO images (image, image_text) VALUES ('$image', '$image_text')";


Como posso fazer isso funcionar?

  • Moderador
  • Solução
Postado

@Reberth Siqueira

Não é muito ideal guardar imagens no banco de dados. Ela torna a consulta pesada.

Guarde no banco o caminho da imagem ou apenas o nome do arquivo além de outros dados que precisar.

Eu faria da seguinte forma:

Crie uma pasta no root para receber estas imagens.

No banco de dados vai receber assim:

 

ID imagem                imagem_text
1   nome_da_imagem.png   descrição desta imagem  

 

No php você monta o caminho e usa a função move_uploaded_file() para mover para o diretório criado.

 

exemplo


$image_text = $_POST["image_text"];
$arquivo_nome = $_FILES['imagem']['name'];
$arquivo_temp = $_FILES['imagem']['tmp_name'];

$diretorio = 'imagens/';

$arquivo_URL = $diretorio . basename($arquivo_nome);

if(move_uploaded_file($arquivo_temp, $arquivo_URL)):
     
     $sql = "INSERT INTO images (image, image_text) VALUES ('$arquivo_nome', '$image_text')"; 
     $insere = mysqli_query($conexao, $sql);

     if($insere):
       echo "Cadastrado com sucesso.";
      else:
       echo "Houve um erro ao cadastrar.";   
     endif;
else:
    echo "Não foi possível mover a imagem.";
endif;

Lembrando que no seu form, você deve usar o enctype="multipart/form-data" e um campo do tipo file.

 

<input type="file" name="imagem" />

Para listar.. basta fazer normalmente como php assim:

 

$query = mysqli_query($conexao, "SELECT image, image_text FROM image");

$url = 'imagens/';

while($imagem = mysqli_fetch_object($query)):
    $img = $url . $imagem->image;
    echo "
          <div class='img-wrapper'>
              <img src='$img' alt='$imagem->image' />
            <div class='descricao'>$imagem->image_text</div>
           </div>";
endwhile;

Bem é por aí a coisa. 

Estude esses códigos e implemente da forma que achar mais fácil.

  • Amei 1
Postado

Muito obrigado pela resposta @DiF!!

 

Eu montei aqui e deu certo! Era um erro besta, mas que eu desconhecia. Eu não estava mandando todas as informações que precisavam ser inseridas na tabela. Eu estava mandando 2 valores. Eu mandava a string que refere-se ao diretorio da imagem e outra que é referente a uma descrição dela. Enquanto eu precisava na realidade mandar 3 valores: $id , $image e $image_text.

 

Depois que eu terminasse de escrever este post eu ia correr atras de um metodo para mostrar a imagem na tela, mas parece que esse metodo tá aqui mesmo hahah! Mt Obrigado!!

 

 

 

 

  • Curtir 1
  • Moderador
Postado

@Reberth Siqueira Só uma dica. 

 Se o objetivo era mostrar uma foto e todos os comentários relacionados a ela e somente ela,  você terá que modelar seu banco para que tenha pelo menos duas tabelas.

Onde seria  imagem e comentario

Então, a tabela comentário irá ter uma chave estrangeira para receber o valor ID da tabela imagem.

Você faria um relacionamento de 1:N, onde uma imagem, pode ter N comentários. :thumbsup:

 

  • Curtir 1
Postado

@DiF Então, a minha dúvida principal era sobre como criar um registro da imagem que eu to fazendo upload para meu ambiente de trabalho.

 

 

  Em 17/09/2019 às 01:25, DiF disse:

Você faria um relacionamento de 1:N, onde uma imagem, pode ter N comentários. :thumbsup:

Expandir  

 

Eu não tinha isso em mente. Mas achei legal a ideia... Como eu poderia procurar no google para encontrar mais informações sobre esse metodo? (algo como "how to pic comments in php"?)

  • Moderador
Postado

@Reberth Siqueira

  Em 17/09/2019 às 02:28, Reberth Siqueira disse:

Como eu poderia procurar no google para encontrar mais informações sobre esse metodo? (algo como "how to pic comments in php"?)

Expandir  

Isso você encontra em todo lugar, youtube, google..

Isso é basicamente criar duas tabelas e relacionar uma com a outra. Esta seria a resposta mais curta.

 

Um tempo a tras eu gravei um video tutorial de como criar estes relacionamentos de forma correta.

 

Parte dois

 

 

O video retrata como criar o relacionamento e fazer consultas. 

O exemplo foi usado com notícias, mas você pode adaptar para mostrar uma imagem e seus respectivos comentários.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...