Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

GpL

ajuda - galeria de produtos

Mensagens Recomendadas

GpL

Boa tarde,

Eu estou com um problema para desenvolver um script e tenho um pouco de urgência.

O problema é o seguinte:

Vou ter uma página em que vai buscar a uma tabela de BD o caminho para uma imagem e o preço do produto e não estou a conseguir apresentar só esse produto e criar uma espécie da paginação dentro dessa página para percorrer os registos da tabela, ou seja, tenho o produto X e o preço X na página e tenho de ter um botão seguinte que vá buscar o próximo registo à tabela e na mesma página me substitua a imagem e o preço X pelo Y, se é que me faço entender.

Algo do género:


<?php
$BD=mysql_select_db($database_ligacaobd,$ligacaobd);
$query= "Select * from galeria" ;
$resultado = mysql_query($query);
if ($resultado) {
		while ($registo = mysql_fetch_array ($resultado)){
			$imagem = $registo ["imagem"];
			$imagem2= "backoffice/" . $imagem;		
			print("<img height=\"350px\" width=\"250px\" src=\"$imagem2\" />");
		}
}
mysql_free_result ($resultado);
?>

O problema é que assim só me mostra a primeira imagem e não consigo mostrar as próximas na mesma  página.

Fico a aguardar alguma ajuda.

Cumprimentos

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hbarquero

Aqui vai uma sugestão :)

usa o limit no SQL

$query= "Select * from galeria limit $pagina,1" ;

Onde vais buscar o $pagina por Get, por exemplo

Outra coisa, se estas a ir buscar 1 único produto não necessitas ter um while.


Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hbarquero

Por mostrares 1 produto de cada vez é que não necessitas do ciclo while :)

aqui fica uma sugestão:

<?php
        
if (isset($_GET["pagina"]) {
         $pagina=$_GET["pagina"] -1 ;
} else {
         $pagina=0;
}

        $BD=mysql_select_db($database_ligacaobd,$ligacaobd);
        $query= "Select * from galeria limit ".$pagina.",1" ;
        $resultado = mysql_query($query);
        if ($resultado) {
                       If ($pagina>1) {
                         echo "<a href='?pagina=".$pagina-1."'>Anterior</a>";
                      }
                      $registo = mysql_fetch_array ($resultado);
                      $imagem = $registo ["imagem"];
                      $imagem2= "backoffice/" . $imagem;              
                      print("<img height=\"350px\" width=\"250px\" src=\"$imagem2\" />");
                      
                      echo "<a href='?pagina=".$pagina+1."'>Seguinte</a>";
                        
        }
        mysql_free_result ($resultado);
?>

Fiz isto à pressa por isso testa a ver que tal.


Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
GpL

Depois de corrigir alguns pequenos erros, já dá +/-.. ou seja, os links não estao a dar bem, o $pagina+1 e $pagina-1 não tá a funcionar, mas se eu no link for directo para a ?pagina=1 aparece a 1ª imagem na BD e se for para para ?pagina=2 já me aparece o 2º registo. Agora o problema é os links não darem e o "seguinte" desaparecer quando não houver mais registos

obrigado pela ajuda dada até agora

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
hbarquero

altera o seguinte:

nas 1ª secção onde tens o isset(...

mudas para:

if (isset($_GET["pagina"]) ) {
$limit=$_GET["pagina"]-1;
$pagina=$_GET["pagina"];
} else {
$limit=0;
$pagina=1;
}

aqui ja ficas com o limit e a pagina correctos, e separados.

no sql mudas a variável $pagina para $link

nos links colocas:

If ($pagina>1) {
echo "<a href='?pagina=".($pagina-1)."'>Anterior</a>";
}

e

echo "<a href='?pagina=".($pagina+1)."'>Seguinte</a>";

para que o seguinte fazes o sql Count à tabela, e só mostras se o $pagina+1 >= ao Count deve resolver o problema :)


Tudo o que não provoca a minha morte, torna-me mais forte.http://formacao-cursos.com

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
GpL

Penso que já está a funcionar bem.

if (isset($_GET["pagina"]) ) {
   $limit=$_GET["pagina"]-1;
   $pagina=$_GET["pagina"];
} else {
   $limit=0;
   $pagina=0;
}


<?php
	$BD=mysql_select_db($database_ligacaobd,$ligacaobd);
	$result = mysql_query("SELECT * FROM galeria");
	$num_rows = mysql_num_rows($result);

        $query= "Select * from galeria limit ".$pagina.",1" ;
        $resultado = mysql_query($query);
        if ($resultado) {
                       If ($pagina>=1) {
   						echo "<a href='?pagina=".($pagina-1)."'>Anterior</a>";
						}

                      $registo = mysql_fetch_array ($resultado);
                      $imagem = $registo ["imagem"];
                      $imagem2= "backoffice/" . $imagem;              
                      print("<img height=\"350px\" width=\"250px\" src=\"$imagem2\" />");
				  if ($pagina < $num_rows-1) {
                      echo "<a href='?pagina=".($pagina+1)."'>Seguinte</a>"; 
				  }
        }
        mysql_free_result ($resultado);

?>

Obrigado pela ajuda e mais alguma sugestão para melhorar isto é benvinda.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.