Ir para conteúdo

POWERED BY:

Arquivado

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

Juliano Tavares

[Resolvido] Array de imagens vindo do bd

Recommended Posts

Olá pessoal.

To fazendo um script aqui de exibição de cadastro de softwares, é coisa simples, porém tá me torturando...

 

Tenho 2 tabelas no mysql, uma é "softwares" onde tem id, nome, tipo etc...

e outra é chamada de "telas" onde vou cadastrar as telas do sistema, tipo screenshots.

a estrutura é assim:

telas:

telas_id | soft_id | telas

 

pra cadastrar nao tem problema, eu faço uma busca pelo id do software e cadastro a imagem pra aquele id sendo que tenho que cadastrar uma por uma.

 

A dúvida é a seguinte:

Como posso fazer pra em uma pagina tipo: ver_software?id=10 (onde 10 é o id do software) ele tem que mostrar as imagens da tabela "telas" que foram cadastradas com o "soft_id" 10.

Tipo, so mostrar as telas que estao cadastradas para este software.

 

<?
  // pega o id através da url e compara na tabela soft_id e trás os nomes das telas exemplo: (teste.gif) pq faço upload pelo admin e jogo o nome da tela no banco

  $sql = mysql_query("SELECT * FROM telas WHERE soft_id='$id'")or die("MySQL ERROR: ".mysql_error());
while ($dados=mysql_fetch_array($sql)) {
  
	  ?>

						  <?
  if (empty($dados[tela])){
	echo "Não possui telas.";
  }else{
?>
						  <a href="java script:open_window('telas.php?id=<?=$dados[tela_id]?>&tela=<?=$dados[tela]?>')">
						  Tela 1						  </a>
						  <?
   }
?>

Até ai tudo bem, ele mostra a tela, mas eu cadastro 10 telas e gostaria que mostrasse quando HOUVER as 10 uma lista delas.

Não estou conseguindo encontrar uma solução, me falaram de usar array, mas não tenho muita experiencia com array, podem me auxiliar?

 

desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez não tenha entendido bem, mais porque isso que você está fazendo não funciona ? Quando você usa o while ai você ja está trabalhando com array ... bah talvez eu não tenha entendido realmente o problema, ... qualquer coisa posta ai ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez não tenha entendido bem, mais porque isso que você está fazendo não funciona ? Quando você usa o while ai você ja está trabalhando com array ... bah talvez eu não tenha entendido realmente o problema, ... qualquer coisa posta ai ...

Isso funciona sim, porém, ele não exibe todas as imagens, exibe apenas 1, se eu tiver 10 cadastradas como faço pra exibir essas 10, sendo que tá vindo de uma mesma tabela no caso "telas".

 

Esse é o detalhe que tá pegando!,

Eu quero que ele exiba as imagens que estão cadastrada na tabela "telas" que são correspondentes ao "soft_id" selecionado, se tiver 3 exibe 3, se tiver 10 exibe 10. Hehehe, talvez eu não tenha explicado muito bem.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa .. não você explicou bem sim .. mais veja o que você faz está fazendo ja funciona .. testa ai assim:

$sql = mysql_query("SELECT * FROM telas WHERE soft_id='$id'")or die("MySQL ERROR: ".mysql_error());
while ($dados=mysql_fetch_array($sql)) {

echo "$dados['telas_id']";

}

.. dai é so colocar as imagens no lugar do telas_id ;) ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa .. não você explicou bem sim .. mais veja o que você faz está fazendo ja funciona .. testa ai assim:

$sql = mysql_query("SELECT * FROM telas WHERE soft_id='$id'")or die("MySQL ERROR: ".mysql_error());
while ($dados=mysql_fetch_array($sql)) {

echo "$dados['telas_id']";

}

.. dai é so colocar as imagens no lugar do telas_id ;) ..

Deu na mesma! Rapaz esse negócio tá fuzilando meu cérebro heheh.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu na mesma ? Confere ai então se você tem mais de 1 imagem cadastrada na tabela telas com o id informado ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu na mesma ? Confere ai então se você tem mais de 1 imagem cadastrada na tabela telas com o id informado ...

Veja so:

 

Tabela telas:

 

telas_id | soft_id | tela

3 10 box_represis.gif

2 10 box_represis1.gif

4 10 box_represis2.gif

O problema tá nele contruir a lista dessas telas como postei acima. Nesse caso ele so mostra 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora consegui listar as telas assim:

 

while ($dados=mysql_fetch_row($sql9)) {
   $tela_id[]	= $dados;						 
   $tela[] = $dados;	
	?>
				  <table width="100%" border="0" cellspacing="0" cellpadding="0">
					<tr>
					  <td align="center"><div align="center"><strong>
						  <?
  if (empty($tela)){
	echo "Não possui telas.";
  }else{
?>
						  <a href="java script:open_window('telas.php?id=<?=$tela_id?>&tela=<?=$tela?>')">
						  Tela						  </a>
						  <?
   }
?>

Porém no link que ele gera na lista de cada imagem tá assim:

java script:open_window('telas.php?id=Array&tela=Array')
Hehehe, o problema mesmo é eu nao saber utilizar array...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Passa o índice do array que você quer.

'telas.php?id=<?=$tela_id[1]?>&tela=<?=$tela[1]?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troque $tela_id por $tela_id[] e $tela por $tela[]

Fatal error: Cannot use [] for reading in /home/tavares/www/ver_software.php on line 121

<?
  if (empty($tela[])){		   ######### LINHA 121
	echo "Não possui telas.";
  }else{
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim:

<?
  // pega os últimos usuários cadastrados
  $sql9 = mysql_query("SELECT * FROM telas WHERE soft_id='$id'")or die("MySQL ERROR: ".mysql_error());
while ($row=mysql_fetch_array($sql9)) {
  $tela_id = $row[0];
  $soft_id = $row[1];
  $tela = $row[2];					   

	  ?>
										  <?
  if (empty($tela[2])){
	echo "Não possui telas.";
  }else{
?>
						  <a href="java script:open_window('telas.php?id=<?=$tela_id[0]?>&tela=<?=$tela[2]?>')">
						  Tela						  </a>
						  <?
   }
?>
			  
					  </strong></div></td>
					</tr>
				</table>
				<? } ?>

E aparece isso no link:

Tela 1: java script:open_window('telas.php?id=2&tela=p')

Tela 2: java script:open_window('telas.php?id=3&tela=p')

Tela3: java script:open_window('telas.php?id=4&tela=p')

Tela 4: java script:open_window('telas.php?id=5&tela=p')

Tá vindo só a 3 letra do nome da imagem: "represis1.gif"

 

Sei que to perto, mas ainda não achei o problema!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que consegui eheheh

<a href="java script:open_window('telas.php?id=<?=$tela_id[0]?>&tela=<?=$tela?>')">

Tá aparecendo

java script:open_window('telas.php?id=5&tela=represis004.gif')

Galera muito obrigado, é tentando e errando que aprendemos né, abraço a todos.

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.