PHP - campos de repetição

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

PHP - campos de repetição

Mensagempor tubarao21 » Sexta Out 19, 2007 10:05

Boas pessoal. Trago uma questão q muitos ja tiveram de se debater.

Eu uso campos de repetição num site.

Exemplo: tenho um produto, faço um: "<?php do { ?> campos <?php } while ($row_Recordset = mysql_fetch_assoc($Recordset)); ?>", onde vai buscar todas as fotos que existem deste produto (atraves de variável URL).

Ora, no site, aparece uma linha (<tr>) horizontal com as fotos todas, o que faz com a janela seja esticada. Se fizer com coluna (<td>) aparece uma coluna com todas as fotos na vertical.

Há alguma maneira de eu controlar a exibiçao das fotos em duas linhas, do género, 4 fotos numa linha mais 4 fotos noutra linha?

Thanks ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor ^DJ_Link^ » Sexta Out 19, 2007 10:16

Olá!
O que podes fazer é uma contagem.
Colocas uma variavel sempre a incrementar, quando ela chega ao valor pretendido, imagina 4, fechas a tag da linha e abres uma nova e metes essa variavel a 0, ela fara isto ate n ter mais nada. =)
^DJ_Link^
Membro de Prata
Membro de Prata
 
Mensagens: 164
Registado: Sexta Mai 23, 2003 13:33
Localização: Setubal

Mensagempor tubarao21 » Sexta Out 19, 2007 10:37

Hum, estou a ver :D

Mas o problema é que não tenho conhecimentos para isso. Podias dizer-me em termos practicos? Só para dps tentar adoptar?

O que tenho é isto:

<table><div align="center"><?php do { ?>
<tr>
<a id="thumb1" href="images/<?php echo $row_recordset['path']; ?>" class="highslide" onClick="return hs.expand(this, {captionId: 'caption1'})">
<img src="images/<?php echo $row_recordset['path']; ?>" width="75" height="50" align="top"></a>
</tr>
<?php } while ($row_recordset = mysql_fetch_assoc($recordset)); ?></div></table>

Pois, deves estar a pensar que eu preciso da sopinha td feita, e se calhar preciso mesmo :)

thanks ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor ^DJ_Link^ » Sexta Out 19, 2007 10:46

olha vou-te ser sincero n experimentei isto, e inda por cima tou no trabalho :P

ve la se isto faz alguma coisa de jeito :P
Código: Seleccionar todos
<table><div align="center">
<tr>
<?php
$count=0;
do { ?>

<td>
<a id="thumb1" href="images/<?php echo $row_recordset['path']; ?>" class="highslide" onClick="return hs.expand(this, {captionId: 'caption1'})">
<img src="images/<?php echo $row_recordset['path']; ?>" width="75" height="50" align="top"></a>
</td>
<?php
if($count==4) { ?> </tr><tr><?php $count=0; } ?>
} while ($row_recordset = mysql_fetch_assoc($recordset)); ?></div></table>
^DJ_Link^
Membro de Prata
Membro de Prata
 
Mensagens: 164
Registado: Sexta Mai 23, 2003 13:33
Localização: Setubal

Mensagempor tubarao21 » Sexta Out 19, 2007 11:34

A janela apareceu em branco - sem informação. Vi as ultimas 3 linhas:
Código: Seleccionar todos
<?php
if($count==4) { ?> </tr><tr><?php $count=0; } ?>
} while ($row_recordset = mysql_fetch_assoc($recordset)); ?></div></table>


alterei para (tenho poucos conhecimentos de PHP):

[/code]
<?php
if($count==4) { ?> </tr><tr><?php $count=0; } ?>
<?php } while ($row_RsetDetail_pt = mysql_fetch_assoc(RsetDetail_pt)); ?></div></table>[/code]

Desta maneira, a janela apresenta apenas uma foto.
[/code]
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Out 22, 2007 9:03

Alguem tem mais ideias?
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor aDoF96 » Segunda Out 22, 2007 9:40

Penso que nesse código o que está a faltar é incrementar a variavel $count por isso é que só deve mostrar um.. E também ter as linhas e colunas dentro de uma tag <div> não deve ajudar muita pra que funcione, acho eu..

Experimenta assim:

Código: Seleccionar todos
<?php
if (!isset($_SESSION)) {
  session_start();
}
$_SESSION['contador'] = 0;
?>
<table>
<?php do { ?>
<tr>
<td>
<a id="thumb1" href="images/<?php echo $row_recordset['path']; ?>" class="highslide" onClick="return hs.expand(this, {captionId: 'caption1'})">
<img src="images/<?php echo $row_recordset['path']; ?>" width="75" height="50" align="top"></a>
</td>
<?php
$_SESSION['contador'] += 1;
if($_SESSION['contador'] == 4)
   echo "</tr> <tr>";

} while ($row_recordset = mysql_fetch_assoc($recordset));
?>
</table>


Eu uso assim para uma cena parecida com o que tu queres e funciona, assim mostra 4 imagens por linha, uma em cada coluna :wink:
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor tubarao21 » Segunda Out 22, 2007 10:53

Continua a ir buscar apenas 1 imagem :s

Será util colocar aqui o codigo todo da pagina?
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Out 22, 2007 11:12

Ok, é melhor fazer o ponto de situação :)

Revisto as ajudas que me deram e baseado na ultima sugestão tenho a programação do seguinte modo:

Código: Seleccionar todos
          <TD><img src="images/<?php echo $row_RsetDetail['thumbnail']; ?>"><br><p>
               <?php
if (!isset($_SESSION)) {
  session_start();
}
$_SESSION['contador'] = 0;
?>
<table>
<?php do { ?>
<tr>
<td>
         <a id="thumb1" href="images/<?php echo $row_RsetDetail['caminho']; ?>" class="highslide" onClick="return hs.expand(this, {captionId: 'caption1'})">
   <img src="images/<?php echo $row_RsetDetail['caminho']; ?>" width="75" height="50" align="top"></a>
</td>
<?php
$_SESSION['contador'] += 1;
if($_SESSION['contador'] == 4)
   echo "</tr> <tr>";
} while ($row_RsetDetail_pt = mysql_fetch_assoc($RsetDetail_pt)); ?></table></p></TD>



Deste modo mostra todas as fotos, no entanto, aparece tudo na vertical.

Obrigado ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Out 22, 2007 14:55

alguem tem uma pista? não tou a ver pq é q ele apresenta apenas uma coluna por linha, ou melhor, uma foto por linha.
Acabo por ter 8 fotos, por ex, todas numa unica coluna.
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor aDoF96 » Segunda Out 22, 2007 15:10

as imagens que queres mostrar têm todas as mesmas medidas ou é ao calhas?
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor tubarao21 » Segunda Out 22, 2007 15:28

As imagens têm todas os mesmo tamanho, mas msm assim limito as dimensões atraves de codigo: " width="75" height="50" align="top" ".
Originalmente são um pouco maiores, 350 x 230.
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor tubarao21 » Segunda Out 22, 2007 15:57

Já funciona! Irra!

Foi so trocar a ordem de

Código: Seleccionar todos
<table>
<?php do { ?>
<tr>
<td>


para

Código: Seleccionar todos
<table>
<tr>
<?php do { ?>
<td>



Tá funcionar bem :D



Muito e muito obrigado pela vossa ajuda ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48

Mensagempor aDoF96 » Segunda Out 22, 2007 16:09

oh ya, que erro estúpido xD
aDoF96
Membro de Prata
Membro de Prata
 
Mensagens: 249
Registado: Domingo Set 26, 2004 14:34
Localização: Mozelos - S.M. Feira

Mensagempor tubarao21 » Segunda Out 22, 2007 16:17

eheh. ya. :)

as vezes que eu lá pus os olhos xD.


Obrigado pela ajuda ;)
tubarao21
Membro de Prata
Membro de Prata
 
Mensagens: 177
Registado: Quinta Nov 17, 2005 11:48


Voltar para Programação

Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 2 visitantes

cron