Jump to content


Photo

Ajuda Com Exibição De Tabela


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

#1 falito crispim

falito crispim

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Masculino

Posted 07/01/2010, 08:39

Olá pessoal, o meu problema é o seguinte:

Estou exibindo as imagens de uma pasta especifica do servidor, e preciso que elas sejam ordenadas dentro de uma tabela.

Ela tem três colunas, por isso quando o resto da divisão por 3=0, eu mando imprimir a tag "</tr>", só que uma linha ela exibe 2 fotos e na outra 3.

Vejam se vocês podem me ajudar! Agradeço desde já.

Segue o trecho do código.

[font="Lucida Console"]<table cellspacing="5" cellpadding="10"  border="1" width="100%" align="center"> 
				 	<?php
				
					$dir = opendir("fotos");
					$i = 1; 
					while (($file = readdir($dir)) !== false){
						$arquivo = explode('.', $file); 
							if($arquivo[1]=='jpg' || $arquivo[1]=='JPG' || $arquivo[1]=='png' || $arquivo[1]=='PNG'){
								if($i % 3 == 0){
									echo "</tr>";
								} 
								echo "<td align='center'>\n 
										\t<a href='fotos/$file'><img src='fotos/" . $file . "' width='150' alt='Unigarden'/></a>\n 
								</td>\n"; 
						    }
							
					 $i++;  
  					}
				closedir($dir);
				?> 
                </table>[/font]


#2 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 07/01/2010, 09:32

Olá pessoal, o meu problema é o seguinte:

Estou exibindo as imagens de uma pasta especifica do servidor, e preciso que elas sejam ordenadas dentro de uma tabela.

Ela tem três colunas, por isso quando o resto da divisão por 3=0, eu mando imprimir a tag "</tr>", só que uma linha ela exibe 2 fotos e na outra 3.

Vejam se vocês podem me ajudar! Agradeço desde já.

Segue o trecho do código.

<table cellspacing="5" cellpadding="10" border="1" width="100%" align="center">
<?php

$dir = opendir("fotos");
$i = 1;
while (($file = readdir($dir)) !== false){
$arquivo = explode('.', $file);
if($arquivo[1]=='jpg' || $arquivo[1]=='JPG' || $arquivo[1]=='png' || $arquivo[1]=='PNG'){
if($i % 3 == 0){
echo "</tr>";
}
echo "<td align='center'>\n
\t<a href='fotos/$file'><img src='fotos/" . $file . "' width='150' alt='Unigarden'/></a>\n
</td>\n";
}

$i++;
}
closedir($dir);
?>
</table>


E ae Falito!

Tudo na paz...?

Olha só quando você for postar... utilize as tags 'code' e '/code' para melhorar a leitura do código!

Bem eu acredito que está faltando você abrir e fechar corretamente os tr's

Para facilitar essa organização você pode utilizar a função 'scandir($dir);'

Ela varre o diretório e retorna um array contendo os arquivos deste diretório.

Eu modifiquei um pouco o seu código para adequar na lógica que eu pensei aqui:
Vê se você entende direitinho.
Qualquer dúvida posta de novo.


<table cellspacing="5" cellpadding="10"  border="1" width="100%" align="center"> 
<?php
	
    $dir = opendir("fotos");
	
	$diretorio = scandir("fotos");
	
	//retira os pontos que a função scandir gera
	//e coloca em um novo array
	$imagens = array();
	foreach($diretorio as $value)
	{	
		//verifica se a posição atual é . ou ..
		if( $value != "." && $value != ".."  ){
			
			//verifica se é uma imagem jpg ou png
			$imagemAtual = explode('.', $value); 
			if($imagemAtual [1]=='jpg' || $imagemAtual [1]=='JPG' || $imagemAtual [1]=='png' || $imagemAtual [1]=='PNG'){
				array_push($imagens, $value);
			}
			
		}
			
					
			
	}
	
	//recupera a quantidade de imagens no diretório
	$totalArquivos =count($imagens);	
	
	//arredonda a quantidade de repetições através do for
	$totalLoops = ceil($totalArquivos / 3);
	
	//laço para imprimir os tr's
	for( $coluna = 0; $coluna < $totalLoops; $coluna++ )
	{
		echo "<tr>";
		
		    //este for irá repetir sempre três vezes para imprimir
			//as três imagens por coluna
			for( $linha = 0; $linha < 3; $linha++ )
			{
				echo "<td align='center'>\n \t
						  <a href='fotos/". $imagens[$linha + $coluna] ."'>
							  <img src='fotos/". $imagens[$linha + $coluna] ."' width='150' alt='Unigarden'/>
						  </a>\n 
				      </td>\n";
			}
		
		echo "</tr>";		
	}
	

	closedir($dir);
?> 
</table>


Abração!

Fica com DEUS!
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#3 falito crispim

falito crispim

    Novato no fórum

  • Usuários
  • 16 posts
  • Sexo:Masculino

Posted 07/01/2010, 09:58

Cara valeu!!

Deu tudo certinho!

Só algumas dúvidas:

O que são o array_push e o ceil?

Grande abraço!

#4 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 07/01/2010, 10:37

Cara valeu!!

Deu tudo certinho!

Só algumas dúvidas:

O que são o array_push e o ceil?

Grande abraço!


O array_push é uma função que pega determinado valor e adiciona no fim de um array.

Função array_push

ceil é uma função que arredonda um número para cima.

Função ceil
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.




1 user(s) are reading this topic

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

IPB Skin By Virteq