Ir para conteúdo

POWERED BY:

Arquivado

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

manufe

Qual a melhor maneira...

Recommended Posts

i ae pessoal,estou montando um site de noticias em q cada noticia podera ter uma galeria de imagem.estou trabalhando com php e mysql, e queria saber algumas sugestões de como montar a tabela no mysql.tipo, não sei se seria viavel criar varias colunas na tabela tipo minifoto_1, foto_1, minifoto_2, foto_2, minifoto_3, foto_3 ...etc.queria dar liberdade para usuario postar a quantidade de imagens necessario, dai naum sei se seria viavel criar a tabela do jeito q estava pensando.queria algumas sugestões

Compartilhar este post


Link para o post
Compartilhar em outros sites

noa seria melhro assim, apos cada noticia cadastrada ele gerasse um endereco, onde tupoderia jogar as foos relacionadas a esta noticia e ums cript q puxe todas as fotos de tal diretorio...q q tu acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu costumo fazer me sistemas de noticias é uma tabela para cadastrar as notícias, onde terá um campo indicando se existem imagens cadastradas na notícia, e outra tabela para guardar os paths para as imagens da notícia, onde cada imagem conteria o id da noticia a qual ela se refere.

 

As tabelas do bd podem ficar assim:

 

Noticias

idnot //auto incrementtitulochamadacorpoimagem (0 ou 1)

e o noticiasimg

id //auto incrementidnot // a chave estrangeirapath

assim eu acho que fica sem problemas quanto a quantidade de img cadastradas

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que eu costumo fazer me sistemas de noticias é uma tabela para cadastrar as notícias, onde terá um campo indicando se existem imagens cadastradas na notícia, e outra tabela para guardar os paths para as imagens da notícia, onde cada imagem conteria o id da noticia a qual ela se refere.As tabelas do bd podem ficar assim:Noticias

idnot //auto incrementtitulochamadacorpoimagem (0 ou 1)
e o noticiasimg
id //auto incrementidnot // a chave estrangeirapath
assim eu acho que fica sem problemas quanto a quantidade de img cadastradas
gostei da ideiamas naum entendi este pach?

Compartilhar este post


Link para o post
Compartilhar em outros sites

manufe esse path eh o caminho da imagem tipohttp://www.seusite.com/noticias/imagens/imagem1.pngao inves de guardar as imagens no banco de dados você guarda elas em uma pasta no servidor e no banco de dados você guarda somente o caminho.

ok,mas mesmo assim tem q criar campos na tabela pra cada imagem, certo?dai se eu criei 20 campos e o usuario queria postar 30 fotos naum vai dar certo.sera q salvar os dados em txt eh viavel?!T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

po, manufe o kidh0 já te deu a solução no post dele.você faz a tabela com as noticiasidnot //auto incrementtitulochamadacorpoimagem (0 ou 1)o campo imagem é um booleano (0 = falso, 1=verdadeiro) q vai dizer se a noticia tem imagem ou não.id //auto incrementidnot // a chave estrangeirapath_fotopath_minio campo idnot é uma chave estrangeira, ou seja você tem uma noticia com id 7, ai a pessoa quer guardar 5 imagens, todas as 5 vão ter o caminho gravado na tabela noticias cada uma com seu id proprio mas no campo idnot todas vão ter o valor 7 q é uma referencia pra explicar q essas imagens são da noticia q tem o id 7, depois é só você fazer um select relacionando as duas tabelas e pronto ;Pqualquer coisa posta ae q a galera te ajuda, mas antes da uma pesquisada sobre relacionamento de tabelas.agora q vi q você quer uma foto e uma mini foto hehe, bom você poderia usar a biblioteca GD do php pra criar as miniaturas tb, você só ia precisar subir a foto grande e o proprio php iria fazer a miniatura te poupando espaço no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora q vi q você quer uma foto e uma mini foto hehe, bom você poderia usar a biblioteca GD do php pra criar as miniaturas tb, você só ia precisar subir a foto grande e o proprio php iria fazer a miniatura te poupando espaço no servidor.

Se os thumbs forem pequenos, tipo 120 X90, acho que eles não aumentaram muito o espaço no banco de dados.Quando gravar as imagens no servidor, grave numa pasta tipo "imgnoticias" e dentro dela crie uma pasta chamada "thumbs".Grave a imagem em tamanho normal na pasta imgnoticias e uma miniatura dentro de thumbs e na hora de cadastrar no bd, cadastre apenas o nome da imagem, sem o path para o diretório, fica mais fácil para fazer a chamada das imagens.Se tiveres dificuldade quanto a criação de imagens com a biblioteca GD, aqui mesmo no iMasters tem várias excelentes matérias na seção de PHP que vão esclarecer muitas dúvidas, seguem os links abaixo:Trabalhando com imagens:http://www.imasters.com.br/artigo.php?cn=2116&cc=44http://www.imasters.com.br/artigo.php?cn=2142&cc=44http://www.imasters.com.br/artigo.php?cn=2171&cc=44http://www.imasters.com.br/artigo.php?cn=2264&cc=44Sistema de imagens:http://www.imasters.com.br/artigo.php?cn=2416&cc=44http://www.imasters.com.br/artigo.php?cn=2486&cc=44http://www.imasters.com.br/artigo.php?cn=2533&cc=44http://www.imasters.com.br/artigo.php?cn=2574&cc=44http://www.imasters.com.br/artigo.php?cn=2635&cc=44http://www.imasters.com.br/artigo.php?cn=2706&cc=44

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom os links, estou desenvolvendo também um pequeno sistema de noticias.

 

em meu banco tinha feito com

idnot

...

imagem (text)

 

na qual eu coloco a imagem numa pasta do servidor em upload, porém no sistema que fiz, tenho a disponibilidade de apenas 1 imagem, não consegui atribuir mais.

 

lendo esses passos acima, vi sobre relacionando as duas tabelas, para adicionar mais imagens a 1 idnot, muito interessante.

 

>>>>> mas não encontrei nada no forum explicando sobre "relacionando as duas tabelas", ou posso ter feito minha pesquisa errada.

poderia explicar melhor como desenvolver, ou repassar link do assunto, vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

O relacionamento é bem fácil.

 

Temos nossas duas tabelas:

 

noticias

idnot //auto incrementtitulochamadacorpoimagem (0 ou 1)

 

e o noticiasimg

id //auto incrementidnot // a chave estrangeirapath

Quando for cadastrar uma noticia, crie uma rotina que verifique se tem alguma imagem para ser cadastrada. Se tiver, você vai inserir os dados da noticia na tabela "noticia" e vai colocar no campo imagem o valor "1", indicando que exitem imagens cadastradas para essa noticia.

 

Após cadastrar a noticia, faça outra rotina a ser executada imediatamente após o cadastro da notícia para cadastrar as imagens na sua respectiva tabela.

 

A mágica está em fazer a referencia em cada imagem a notícia a que ela pertence, através do campo idnot na tabela noticiasimg. É esse campo que tu vais usar para "puxar' os path's das imagens para cada notícia.

 

Se eu for te explicar passo a passo tu não vai aprender, mas com todas essas explicações não tem segredo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu for te explicar passo a passo tu não vai aprender, mas com todas essas explicações não tem segredo.

ok, ...se nao for pedir muito, tem algum exemplo para que possa ajudar na visualização.ou algum link para visitar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok, ...se nao for pedir muito, tem algum exemplo para que possa ajudar na visualização.ou algum link para visitar....

cara, no proprio forum na area de cursos tem um mini tuto de mysql do Fabyo, se você não usa esse banco pelo menos vai te dar uma boa noção de relacionamento de tabelas.Mini Tutorial de Mysqlla ele ta explicando como fazer com inner join, você pode fazer com um monte de selects, mas msm q a principio seja mais facil, depois q você pegar a manha do inner join vai ser mto mais rapido. :natalbiggrin: []sobs: la ele tá usando uma tabela de junções mas se você pegar a lógica pra aplicar só com duas tabelas vai ser facil tb.

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.