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.

 

 

1 hora atrás, DiF disse:

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

 

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

14 horas atrás, 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"?)

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

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!