Ir para conteúdo

Arquivado

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

flavialieggio

Paginação sem banco de dados

Recommended Posts

Ola pessoal,

 

Estou editando meu topico para informar que consegui um script para a paginação das imagens, mas estou teno um problema serio... nao consigo disponiblizar as fotos em quatro colunas.. elas aparecem uma embaixo da outra!!! Nao sei como fazer funcionar!!!! preciso de AJUDA urgente mesmo!!!

 

Vou postar meu script aintigo onde eu nao tinha a paginação, mas a exibição das imagens exatamente como quero

E o script novo com a paginação mas sem a exibição das imagens adequada!

 

CODIGO ANTIGO

<?php$fotos = array("img01.jpg", "img02.jpg", "img03.jpg","img04.jpg","img05.jpg","img06.jpg","img07.jpg","img08.jpg","img09.jpg","img10.jpg","img11.jpg","img12.jpg","img13.jpg","img14.jpg","img15.jpg","img16.jpg","img17.jpg","img18.jpg","img19.jpg","img20.jpg","img21.jpg","img22.jpg","img23.jpg","img24.jpg","img25.jpg","img26.jpg","img27.jpg","img28.jpg","img29.jpg","img30.jpg","img31.jpg","img32.jpg","img33.jpg","img34.jpg","img35.jpg","img36.jpg","img37.jpg","img38.jpg","img39.jpg","img40.jpg","img41.jpg","img42.jpg","img43.jpg","img44.jpg","img45.jpg","img46.jpg","img47.jpg");$fotos_por_linha = 4;?><html><body><div align="center">  <table border="0" cellspacing="5" width="100%"><?php// calcula o número de linhas da tabela$num_fotos = sizeof($fotos);$num_linhas = intval ($num_fotos/$fotos_por_linha);if($num_fotos % $fotos_por_linha!=0)	$num_linhas++;// imprime as linhas e colunas$indice = 0;for($i=0; $i<$num_linhas; $i++){	echo "<tr>";	for($j=0; $j<$fotos_por_linha; $j++)	{		if($indice<$num_fotos)		{			$original = $fotos[$indice];			// monta o nome do arquivo miniatura			$mini = explode('.', $original);			$mini = $mini[0]."_mini.jpg";			echo "<td><a href='#' class='menu_cima'><img src='BOLSAS/".$mini."' onclick=\"MM_openBrWindow('BOLSAS/".$original."','Produtos','scrollbars=yes,resizable=yes,width=400,height=410');\" width='100' height='100'></a></td>";			$indice++;		}		else			echo "<td></td>";	}	echo "</tr>";}?>  </table></div></body></html>

CODIGO NOVO COM PAGINAÇÃO

<?php$fotos = array("img01.jpg", "img02.jpg", "img03.jpg","img04.jpg","img05.jpg","img06.jpg","img07.jpg","img08.jpg","img09.jpg","img10.jpg","img11.jpg","img12.jpg","img13.jpg","img14.jpg","img15.jpg","img16.jpg","img17.jpg","img18.jpg","img19.jpg","img20.jpg","img21.jpg","img22.jpg","img23.jpg","img24.jpg","img25.jpg","img26.jpg","img27.jpg","img28.jpg","img29.jpg","img30.jpg","img31.jpg","img32.jpg","img33.jpg","img34.jpg","img35.jpg","img36.jpg","img37.jpg","img38.jpg","img39.jpg","img40.jpg","img41.jpg","img42.jpg","img43.jpg","img44.jpg","img45.jpg","img46.jpg","img47.jpg");#$RegistrosPorPagina = 12;#//Total de registros por pagina...# #if (!isset($_GET["PaginaAtual"]))#{#$PaginaAtual = 1;#} else#{#$PaginaAtual = $_GET["PaginaAtual"];#}#//Se a variável Pagina não existir, página será = 1, se existir, página sera igual a variavel# #$TotalDeRegistros = (count($fotos) - 1);#//Total de registros contidos no array# #$TotalDePaginas = ceil($TotalDeRegistros/$RegistrosPorPagina);#//O total de páginas será o Total de registros dividido pelo nº de registros por pagina arredondado para CIMA...# #$PrimeiroRegistro = (($PaginaAtual * $RegistrosPorPagina) - $RegistrosPorPagina);#/*#A variável $PrimeiroRegistro é a variavel que indicará o 1º registro a ser exibido...#Lembrando que o "-1" é porque como é um array, os elementos começam com índice "0" e não com índice "1"!#*/# #function CriarLinks ($TotalDePaginas)#{#$link = '';#//Inicia a variavel#for ($i = 1; $i <= $TotalDePaginas; $i++)#{#//Faz um for até o números de paginas##$link .= ' <a href="PaginacaoDeArrays.php?PaginaAtual='.$i.'">'.$i.'</a> |';#//Adiciona a pagina na string#}# #return $link;#//Tem como retorno a string com os links já criados# #}# #for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)#{#//Cria o for para a exibicao dos registros# #if(isset($fotos[$i]))#{#// se o array com índice $i existe, ele o mostrará!#	echo ' <tr> ';			$original = $fotos[$i];			// monta o nome do arquivo miniatura			$mini = explode('.', $original);			$mini = $mini[0]."_mini.jpg";			echo "<td><a href='#' class='menu_cima'><img src='BOLSAS/".$mini."' onclick=\"MM_openBrWindow('BOLSAS/".$original."','Produtos','scrollbars=yes,resizable=yes,width=400,height=410');\" width='100' height='100'></a></td>";	echo '</tr>';#//echo $fotos[$i].'<br>';#//"Dá" um echo no registro atual#}#}# #echo CriarLinks($TotalDePaginas);#//"Dá" um echo nos links da paginacao... Passando como parametro o total de paginas...?>

Voces verao que quero 12 registro por pagina e disponibiliza-los em 4 colunas!!!

Uma ajuda urgente eu agradeço

 

Flavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal estou tentando unir um codigo no outro mas qdo ponho a parte do codigo que monta as colunas no CODIGO ANTIGO no CODIGO NOVO, ele da um loop infinito... alguem pode me ajudar por favor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nessa parte aqui voce pode fazer o seguinte$linhas = 0;for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)...lá embaixo você define if( $linhas > 3 ) echo ' <tr> '; . . . . if( $linhas > 3 ){ echo ' </tr> '; $linhas = 0; }else{ ++$linhas; }Existe n formas de resolver isso, até de modos melhores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola slipce

 

meu codigo ta assim, mas nao ta gerando as colunas.. se eu colocar do jeito que você ta falando ele gerara as colunas e a quebra de linhas?

 

E onde você fala "la embaixo.." eu insiro em que parte exatamente do codigo? onde gero a exibição??

vou testar...MUITO OBRIGADA

 

<?php#$RegistrosPorPagina = 4;#//Total de registros por pagina...# #if (!isset($_GET["PaginaAtual"]))#{#$PaginaAtual = 1;#} else#{#$PaginaAtual = $_GET["PaginaAtual"];#}#//Se a variável Pagina não existir, página será = 1, se existir, página sera igual a variavel# #$TotalDeRegistros = (count($fotos) - 1);#//Total de registros contidos no array# #$TotalDePaginas = ceil($TotalDeRegistros/$RegistrosPorPagina);#//O total de páginas será o Total de registros dividido pelo nº de registros por pagina arredondado para CIMA...# #$PrimeiroRegistro = (($PaginaAtual * $RegistrosPorPagina) - $RegistrosPorPagina);#/*#A variável $PrimeiroRegistro é a variavel que indicará o 1º registro a ser exibido...#Lembrando que o "-1" é porque como é um array, os elementos começam com índice "0" e não com índice "1"!#*/# #function CriarLinks ($TotalDePaginas)#{#$link = '';#//Inicia a variavel#for ($i = 1; $i <= $TotalDePaginas; $i++)#{#//Faz um for até o números de paginas##$link .= ' <a href="colecao.php?PaginaAtual='.$i.'">'.$i.'</a> |';#//Adiciona a pagina na string#}# #return $link;#//Tem como retorno a string com os links já criados# #}# #for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)#{#//Cria o for para a exibicao dos registros# #if(isset($fotos[$i]))#{#// se o array com índice $i existe, ele o mostrará!#//	echo ' <tr> ';			$original = $fotos[$i];			// monta o nome do arquivo miniatura			$mini = explode('.', $original);			$mini = $mini[0]."_mini.jpg";			echo "<td><a href='#' class='menu_cima'><img src='BOLSAS/".$mini."' onclick=\"MM_openBrWindow('BOLSAS/".$original."','Produtos','scrollbars=yes,resizable=yes,width=400,height=410');\" width='100' height='100'></a></td>";//	echo '</tr>';#//echo $fotos[$i].'<br>';#//"Dá" um echo no registro atual#}#}# #echo CriarLinks($TotalDePaginas);#//"Dá" um echo nos links da paginacao... Passando como parametro o total de paginas...?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Montei a sugestao de acordo com o que entendi mas nao ta funcionando!!!

ficou assim:

 

$linhas = 0;#for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)#{#//Cria o for para a exibicao dos registros##if(isset($fotos[$i]))#{#// se o array com índice $i existe, ele o mostrará!#	echo ' <tr> ';	if( $linhas > 3 ){			$original = $fotos[$i];			// monta o nome do arquivo miniatura			$mini = explode('.', $original);			$mini = $mini[0]."_mini.jpg";			echo "<td><a href='#' class='menu_cima'><img src='".$mini."' onclick=\"MM_openBrWindow('".$original."','Produtos','scrollbars=yes,resizable=yes,width=400,height=410');\" width='100' height='100'></a></td>";			++$linhas;	}else{		echo "<td></td>";	}	echo "</tr>";#//echo $fotos[$i].'<br>';#//"Dá" um echo no registro atual#}#}# #echo CriarLinks($TotalDePaginas);#//"Dá" um echo nos links da paginacao... Passando como parametro o total de paginas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse funciona, bastava impedir que os <tr> e criar a tag <table>

 

Coloquei uma variavel que permite definir o número de colunas por página( está logo no começo ).

<?php$fotos = array("img01.jpg", "img02.jpg", "img03.jpg","img04.jpg","img05.jpg","img06.jpg","img07.jpg","img08.jpg","img09.jpg","img10.jpg","img11.jpg","img12.jpg","img13.jpg","img14.jpg","img15.jpg","img16.jpg","img17.jpg","img18.jpg","img19.jpg","img20.jpg","img21.jpg","img22.jpg","img23.jpg","img24.jpg","img25.jpg","img26.jpg","img27.jpg","img28.jpg","img29.jpg","img30.jpg","img31.jpg","img32.jpg","img33.jpg","img34.jpg","img35.jpg","img36.jpg","img37.jpg","img38.jpg","img39.jpg","img40.jpg","img41.jpg","img42.jpg","img43.jpg","img44.jpg","img45.jpg","img46.jpg","img47.jpg");#$RegistrosPorPagina = 12;//Define o número de colunas$colunasPorPagina = 4;#//Total de registros por pagina...##if (!isset($_GET["PaginaAtual"]))#{#$PaginaAtual = 1;#} else#{#$PaginaAtual = $_GET["PaginaAtual"];#}#//Se a variável Pagina não existir, página será = 1, se existir, página sera igual a variavel##$TotalDeRegistros = (count($fotos) - 1);#//Total de registros contidos no array##$TotalDePaginas = ceil($TotalDeRegistros/$RegistrosPorPagina);#//O total de páginas será o Total de registros dividido pelo nº de registros por pagina arredondado para CIMA...##$PrimeiroRegistro = (($PaginaAtual * $RegistrosPorPagina) - $RegistrosPorPagina);#/*#A variável $PrimeiroRegistro é a variavel que indicará o 1º registro a ser exibido...#Lembrando que o "-1" é porque como é um array, os elementos começam com índice "0" e não com índice "1"!#*/##function CriarLinks ($TotalDePaginas)#{#$link = '';#//Inicia a variavel#for ($i = 1; $i <= $TotalDePaginas; $i++)#{#//Faz um for até o números de paginas##$link .= ' <a href="PaginacaoDeArrays.php?PaginaAtual='.$i.'">'.$i.'</a> |';#//Adiciona a pagina na string#}##return $link;#//Tem como retorno a string com os links já criados##}##for ($i = $PrimeiroRegistro; $i < ($RegistrosPorPagina + $PrimeiroRegistro); $i++)#{#//Cria o for para a exibicao dos registros##echo '<table>';if(isset($fotos[$i]))#{#// se o array com índice $i existe, ele o mostrará!#	 echo ' <tr> ';				  	 $cont = 0;	 $indiceAtual = $i;	 	 while( $cont < $colunasPorPagina ){   		  if( isset( $fotos[ $indiceAtual ] ) ){		$original = $fotos[ $indiceAtual ];		// monta o nome do arquivo miniatura		$mini = explode('.', $original);		$mini = $mini[0]."_mini.jpg";		echo "<td><a href='#' class='menu_cima'><img src='BOLSAS/".$mini."' onclick=\"MM_openBrWindow('BOLSAS/".$original."','Produtos','scrollbars=yes,resizable=yes,width=400,height=410');\" width='100' height='100'></a></td>";		   		   } 		++$cont;		++$indiceAtual;			 }	//Atualiza a variável $i para não repetir e nem pular	 --$cont;	 --$indiceAtual;	 	 $i = $indiceAtual;  	 echo '</tr>';#//echo $fotos[$i].'<br>';#//"Dá" um echo no registro atual#}#}# echo '</table>';#echo CriarLinks($TotalDePaginas);#//"Dá" um echo nos links da paginacao... Passando como parametro o total de paginas...?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Slipce,

 

Por curiosidade me explique algumas linhas

 

//Atualiza a variável $i para não repetir e nem pular	 --$cont;	 --$indiceAtual;		 $i = $indiceAtual;

Poruqe insiriu isso? Sei que e para na repetir nem pular, mas poderia me explicar

--$variavel....

 

me desculpe a pergunta mas nao conheço http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Flávia isso é muito simples, Quando eu gerei o loop para montar as linhas, acontecia o seguinte foto1 foto2 foto3 foto4 foto6 foto7 foto8 foto 9Ele pulava uma foto toda vez que mudava de linha.Então eu tinha que tirar 1 do valor da variavel --$cont; --$indiceAtual; esses sinais de menos significam que decrementar, ou seja, eu estou tirando 1 do valor das variáveis.Exemplo: $cont = 5; --$cont; echo $cont; $cont ficará com o valor 4;É o mesmo que fazer $cont = $cont - 1;Voce pode fazer assim também$cont--;Obs: pode se usar + também $cont++, ++$cont ( logicamente com o sentido inverso ). $i = $indiceAtual;//////////////////////////////////////////////////////Essa linha $i = $indiceAtual; eu só coloquei para não repetir as fotos, e o atualizar a váriavel do for para que quando o programa entrar no while ele exiba as imagens do ponto que ele parou.

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.