Jump to content


Photo

Exibir Imagens


  • Faça o login para participar
19 replies to this topic

#1 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 14:43

Seguinte, tenho um sistema onde produtos são listados em uma tabela, e as imagens são colocadas em outra tabela, na tabela das fotos é indicado o ID do produto (já que os mesmos podem ter várias fotos), a função pra exibir os produtos tah pronta, mas enquanto ele é executada, tem que parar para pegar as fotos da outra tabela. Como faço isso?

#2 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 14:55

Cara le direito o que vc escreveu, eu acho que entendi, mas sua explicação fico confusa.

Dexa eu ve se entendi.
Sistema que cadastra produto, as informações do produto fica em uma tabela, e as fotos fica em outra tabela certo?
e tem uma função que mostra as fotos, e........?
vc quer faze o que com essa função?
Não quer que ela mostre as fotos? não quer que mostre todas as fotos?


Se você quer mostrar a foto o codigo abaixo
$a = mysql_query("SELECT campo_foto FROM tabela_foto WHERE id_produto='$id_produto'");

se vc quer q ele pare de mostrar as fotos.. então poste o codigo da função, e explique melhor o que quer fazer
Se eu lhe ajudei ;) Clique para agradecer!

#3 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 15:03

Ok, desculpe, vou tentar explicar melhor, a função deve listar os produtos acompanhados de pelo menos uma foto, se esta houver.

ele ja exibe os produtos na quantidade desejada, o problema agora é exibir as imagens

function exibe($n, $tipo){
			
			include "connectauser.php";

			$sql = "SELECT * FROM celular  ORDER BY 'id' LIMIT $n"; 

			$resultado = mysql_query($sql)
			or die ("deu Pau!");

			while ($linha = mysql_fetch_array($resultado)) {

			$id = $linha ["id"];
			$nome= $linha ["nome"]; 

a questão agora é como pegar a imagem em uma outra tabela

#4 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 15:11

Eu faço desta maneira, talves outros usuarios faça de forma diferente.

$sql = "SELECT tabela1.campos, tabela2.campos FROM tabela1 LEFT JOIN tabela2 USING(id_campo) WHERE campo_id='$campo_id' ORDER BY campo";

Lembrando, (se eu estiver errado, corriga) para usar USING, ele sera orientado pelo id, ou seja, na tabela 1 onde esta as informação do produto tem que ter um campo por exemplo id_foto_produto, e na tabela das fotos, também tem que ter o campo id_foto_produto, assim ele vai se orientar.

Para recuperar os dados, é da mesma forma que vc ta abtuado a fazer.

while ($linha = mysql_fetch_array($resultado))
{
  $id = $linha ["id"];
  $nome= $linha ["nome"]; 
  $foto= $linha["nome_do_campo_que_indica_caminho_da_foto_da_tabela_2"];
}

consegiu entender?
Se eu lhe ajudei ;) Clique para agradecer!

#5 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 16:40

acredito que sim, vou testar, e muito obrigado, eu realmente não esperava uma resposta tão rápida

Não funcionou, devo ter colocado errado

function exibe ($n, $tipo){
			
			include "connectauser.php";

			$sql = "SELECT cel.cel_id, fotos.cel_id FROM cel LEFT JOIN fotos USING(imovel_id) WHERE cel_id='$cel_id' ORDER BY RAND() LIMIT $n";


			$resultado = mysql_query($sql)
			or die ("deu Pau1!");

			while ($linha = mysql_fetch_array($resultado)) {

			$cel_id = $linha ["cel_id"];
			$cel_tipo_id= $linha ["cel_tipo_id"]; 
			$fabricante = $linha ["fabricante"]; 
			$tipo = $linha ["tipo"]; 
			$garantia = $linha ["garantia"]; 
			$descricao = $linha ["descricao"]; 
			$preço = $linha ["preço"]; 
			$foto = $linha ["foto"] ; // essa é a unica informação que deve ser obtida na tabela fotos


#6 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 22/03/2010, 16:45

@ GNUCLEAR
Seria melhor publicar ai a imagem da sua modelagem de dados. De qualquer forma a dúvida parece ser muito mais de SQL do que de PHP

Falopa!

#7 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 16:51

é que vc não entendeu a ideia dexa eu tenta explica melhor é facil.

vamos imaginar um banco assim

tb_produtos
-> id_produto
-> nome_produto
-> descricao_produto
-> id_produto_foto

e uma tabela que armazena a foto
tb_produto_foto
-> id_produto_foto
-> foto

Vamos imaginar os registros desses campos
tb_produto

id_produto  |  nome_produto  |  descricao_produto          | id_produto_foto
1           |  W810I         |  Celular Muito bom, tenho 1 | 1
2           |  W205          |  Celular Feio               | 1

tb_produto_foto
id_produto_foto  |  foto
1                |  imagens/sonyericsson/foto1.jpg
1                |  imagens/sonyericsson/foto2.jpg
2                |  imagens/sonyericsson/foto3.jpg

Agora eu quero selecionar todos os dados do produto e sua respectiva foto
$a = mysql_query("SELECT tb_produto.*, tb_produto_foto.foto FROM tb_produto LEFT JOIN tb_produto_foto USING(id_produto_foto) WHERE id_produto='$id_produto' ORDER BY id_produto");

while($b = mysql_fetch_array($a))
{
  $nome = $b['nome_produto'];
  $desc = $b['descricao_produto'];
  $foto = $b['foto'];
  
  // resto é com vc =P

}

Edição feita por: Max William, 22/03/2010, 16:52.

Se eu lhe ajudei ;) Clique para agradecer!

#8 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 17:09

bom o BD e o seguinte:

tabela fotos
-foto_id INT
-cel_id INT

tabela cel
-cel_id INT
-nome text
-marca text
...

#9 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 17:15

cade a foto?
Se eu lhe ajudei ;) Clique para agradecer!

#10 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 17:17

bom o BD e o seguinte:

tabela fotos
-foto_id INT
-cel_id INT
-foto LONGBLOB //não fui que fiz isso

tabela cel
-cel_id INT
-nome text
-marca text
...

#11 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 22/03/2010, 17:32

@ GNUCLEAR
SELECT * FROM tabela_cel AS c 
LEFT JOIN tabela_fotos AS f ON ( c.cel_id = f.cel_id ) 

/* ATÉ AQUI TU LISTA TODOS OS REGISTROS */

WHERE c.cel_id = 5542 

/* ATÉ AQUI TU LISTA UM ÚNICO CELULAR E TODAS AS SUAS FOTOS */

ORDER BY c.nome, f.foto_id ASC

/* ATÉ AQUI TU LISTA UM ÚNICO CELULAR E TODAS AS FOTOS ORDENANDO POR NOME DO CELULAR E DEPOIS PELA ORDEM DE ENTRADA DAS FOTOS */

Falopa!

#12 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 22/03/2010, 22:10

Eu tenho que listar vários produtos por página, e junto de cada um deles sua foto, dessa forma eu vou poder listar vários?

#13 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 22/03/2010, 22:25

@ GNUCLEAR
Sinceramente não pretendo escrever o código que você precisa e sim dar um exemplo do que você quer fazer. Levemos em consideração o fato de que quem precisa disso pronto é você, então, poderia pelo menos testar o exemplo pra ver o que ele faz e depois (e só depois) de tentar adaptar A SUA necessidade, voltar a postar...

Note que toda a comunidade (em qualquer outro fórum) não ganha dinheiro para ficar tirando dúvidas ou escrevendo, então, vale a pena ajudar agente a te ajudar...

Testa primeiro veja o que acontece, tente entender o que aconteceu, depois venha e publique o que você conseguiu fazer juntamente com uma nova dúvida. Aqui o objetivo não é programar.

Ser programador é para qualquer um, resolver problemas é para poucos (by John-Henrique (ué foi eu que falei isso?))

Falopa!

#14 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 22/03/2010, 22:34

@hostdesign,
as vezes os usuarios nos interpreta mal. Mas questão é que muitos vem aqui querendo coisas prontas, o que no meu ponto de vista de programador mercenario nun brasil capitalista não é negocio, porem, nós ao invez de dar tudo pronto pra vc coloca no seu site vender pro seu cliente e fica feliz, te ensinamos a fazer..

Como @host disse, não ganhamos nada..
Aqui tentamos ensinar você a programar / efetuar operações que vc ainda não conheça.. e não dar tudo de mão beijada..

Se fosse assim ^^
eu nem teria aprendido a programar, viveria de suporte em comunidades como a WMO ^^
Se eu lhe ajudei ;) Clique para agradecer!

#15 gnuclear

gnuclear

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino

Posted 23/03/2010, 00:34

Quando respondi jah tinha testado, por isso fiz a pergunta, acho q talvez eu tenha sido mal interpretado.

Ele faz a pesquisa exibe tudo, menos a imagem que está no DB dentro em um canpo BLOB




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq