Ir para conteúdo

POWERED BY:

Arquivado

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

Ygornet

Loop com tabelas

Recommended Posts

Pessoal tenho um script fazendo um loop, mas nao consigo fazer as tabelas ficarem uma ao lado da outra de duas em duas.

As tabelas estao ficando uma do lado da outra , mas se tiver 6 registros as tabelas sao encolhidas e os 6 registros ficam na mesma linha.

 

Meu código esta da seguinte forma:

 

<table width="250" border="1" cellspacing="1" cellpadding="1"><tr><?php  $imp = $_GET['n'];require"conexao.php";$sql= mysql_query ("SELECT * FROM tabela where fab_celular='$imp'") or die(mysql_error());$total = mysql_num_rows($sql);for($i=0;$i<$total;$i++) {$dados = mysql_fetch_array($sql);$celular = $dados["celular"];$intro = $dados["intro"];$texto = $dados["texto"];echo"<td width='45'><img src='../admin/arquivos/padrao.jpg' width='45' height='95'/></td>";echo "<td width='205' border='1' bordercolor='red' valign='top'><b><font size='2'>$celular</font></b><br><font size='1'>$intro</font></td>";} ?></tr></table>

Jah alterei de tudo q foi jeito, mas só consegui colocar uma debaixo da outra, nao consigo listar um ao lado do outro de 2 em 2.

O código acima esta listando todos os registros numa linha só. Minha intensão seria 2 a cada linha.

Se alguem puder me ajudar fico grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tabelas nao ficam uma do lado da outra, você tem que colocar :

<span>//body<span> </span> //left<span> </span>//rigth</span>

 

ai você coloca metada pra cada SPAN (left, rigth) em valores de width, ou cria uma css....

 

ai dá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testa aí e posta se deu certo:

<table width="250" border="1" cellspacing="1" cellpadding="1"><?php $imp = $_GET['n'];require"conexao.php";$sql= mysql_query ("SELECT * FROM tabela where fab_celular='$imp'") or die(mysql_error());$total = mysql_num_rows($sql);$j = 0;for($i=0;$i<$total;$i++) {$dados = mysql_fetch_array($sql);$celular = $dados["celular"];$intro = $dados["intro"];$texto = $dados["texto"];if($i == 0 || $j ==2){ $j = 0; echo('<tr>');}echo"<td width='45'><img src='../admin/arquivos/padrao.jpg' width='45' height='95'/></td>";echo "<td width='205' border='1' bordercolor='red' valign='top'><b><font size='2'>$celular</font></b><br><font size='1'>$intro</font></td>";if($j == 1){ echo('</tr>'); }$j=$j+1;}?></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar,

 

Sim funciona, mas acontece que qndo tem um numero impar de registro atabela que fica sozinha fica com uma dimensao das duas de cima!

 

Esse que eh o problema, fazer todas ficarem no mesmo tamanho independente se é numero impar ou par de registros que sao puxados do banco. ;)

 

quando eh numero par de registros fica beleza!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar,

 

Sim funciona, mas acontece que qndo tem um numero impar de registro atabela que fica sozinha fica com uma dimensao das duas de cima!

 

Esse que eh o problema, fazer todas ficarem no mesmo tamanho independente se é numero impar ou par de registros que sao puxados do banco. ;)

 

quando eh numero par de registros fica beleza!

tem como postar algum link pra ver o que está acontecendo, não entendi muito bem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, to testando localmente!Xeu tentar explicar!Bom, oq esta acontecendo no exemplo q você enviou e em outro que eu jah tinha feito similar (na verdade jah fiz inumeros, mas o q eu quero nao consigo nem por reza.. ahUAHuahUAH), é que , qndo carrego os dados do banco para ficar lado a lado , de dois em dois, fica direitinho qndo o numero de registros no banco é par.Quando o numero de registros no banco a ser carregado no script é impar. aí acontece o seguinte;Vamos supor que serão carregados 3 registros.Os dois primeiros ficam lado a lado na primeira linha, jah o terceiro se redimensiona com o tamanho da linha de cima inteira e nao só de um lado da coluna.Acho que agora ficou mais claro ! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, to testando localmente!Xeu tentar explicar!Bom, oq esta acontecendo no exemplo q você enviou e em outro que eu jah tinha feito similar (na verdade jah fiz inumeros, mas o q eu quero nao consigo nem por reza.. ahUAHuahUAH), é que , qndo carrego os dados do banco para ficar lado a lado , de dois em dois, fica direitinho qndo o numero de registros no banco é par.Quando o numero de registros no banco a ser carregado no script é impar. aí acontece o seguinte;Vamos supor que serão carregados 3 registros.Os dois primeiros ficam lado a lado na primeira linha, jah o terceiro se redimensiona com o tamanho da linha de cima inteira e nao só de um lado da coluna.Acho que agora ficou mais claro ! :)

vamos tentar algumas alterações:troque:if($j == 1){echo('</tr>');}por:if($j == 1 || ($i == ($total-1))){echo('</tr>');}

Compartilhar este post


Link para o post
Compartilhar em outros sites

continua a memsa coisa!ops.. mesma*

Agora tente:echo"<td width='45' colspan='1'><img src='../admin/arquivos/padrao.jpg' width='45' height='95'/></td>";echo "<td width='205' colspan='1' border='1' bordercolor='red' valign='top'><b><font size='2'>$celular</font></b><br><font size='1'>$intro</font></td>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

acrescentei os 'colspan' mas continuou a mesma coisa ..

Mas agora percebi uma coisa.

 

Se tem 3 registros a serem carregados, tah ficando certinho, o terceiro registro vai pra linha de baixo do mesmo tamanho do registro de cima da primeira coluna.. é oq eu queria ..

 

Oq tah acontecendo agora eh que qndo só tem 1 registro inserido no banco, aí qndo carrega só esse registro ele fica extendido nas duas colunas, isso só ocorre qndo tem um registro apenas.

 

Ex:

 

qndo se tem 3 registros:

 

| Registro 1 | | Registro 2 |

| Registro 3 |

 

 

qndo se tem 2 registros:

 

| Registro 1 | | Registro 2 |

 

 

qndo se tem 1 registros:

| Registro 1.....................|

 

Agora ficou mais Explicadinho..

 

Lembrando que o problema eh quando tem só 1 registro que era rpa ficar assim:

 

| Registro 1 |

 

e nao extendido como coloquei no exemplo lah encima!

Compartilhar este post


Link para o post
Compartilhar em outros sites

acrescentei os 'colspan' mas continuou a mesma coisa ..

Mas agora percebi uma coisa.

 

Se tem 3 registros a serem carregados, tah ficando certinho, o terceiro registro vai pra linha de baixo do mesmo tamanho do registro de cima da primeira coluna.. é oq eu queria ..

 

Oq tah acontecendo agora eh que qndo só tem 1 registro inserido no banco, aí qndo carrega só esse registro ele fica extendido nas duas colunas, isso só ocorre qndo tem um registro apenas.

 

Ex:

 

qndo se tem 3 registros:

 

| Registro 1 | | Registro 2 |

| Registro 3 |

 

 

qndo se tem 2 registros:

 

| Registro 1 | | Registro 2 |

 

 

qndo se tem 1 registros:

| Registro 1.....................|

 

Agora ficou mais Explicadinho..

 

Lembrando que o problema eh quando tem só 1 registro que era rpa ficar assim:

 

| Registro 1 |

 

e nao extendido como coloquei no exemplo lah encima!

Faz um teste tirando o width da tabela

<table border="1" cellspacing="1" cellpadding="1">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jah havia tentado , da nada nao, continua a mesma coisa!

Uma pergunta, você lista a imagem e ao lado o texto sobre esta imagem, certo?Se existir só um dado, este vai ficar de acordo com o width que você usa, ou seja a imagem width=45 e o texto width=205, no total 250, certo?sua tabela está com um width de 250, certo?então se tiver uma só imagem ela vai ser listada em um width de 250, se for duas, as colunas vão se dividir para cada dado com um tamanho total de 250, verifique isto,outra coisa, porque você não coloca o texto sobre a imagem logo abaixo dela como neste link:http://hcar.prophp.org/upload/listaFotos.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao nao pode , tem que ser assim: http://www.vivo.com.br/portal/celulares_empresas.phpSe pudesse eu jah tinha concluido a muito tempo. jah fiz de todas as formas .. maaaaaaaaaaasss... :)

tenta aí mais uma alternativa:Tira esta linha do inicio:<table width="250" border="1" cellspacing="1" cellpadding="1">coloca ela assim:$sql= mysql_query ("SELECT * FROM tabela where fab_celular='$imp'") or die(mysql_error());$total = mysql_num_rows($sql);if($total > 1){ echo('<table width="250" border="1" cellspacing="1" cellpadding="1">');}else{ echo('<table width="125" border="1" cellspacing="1" cellpadding="1">');}for($i=0;$i<$total;$i++) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar,

Valeu meu rei.. certinho!!!

 

Não querendo abusar, mas jah abusando , se tu puder reescrever o códico e explicar detalhado a parte do j e i , ficarei ainda mais grato..

 

Nao precisa ser agora.

 

Se nao der tb tudo bem...

 

 

Valeus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hcar,

Valeu meu rei.. certinho!!!

 

Não querendo abusar, mas jah abusando , se tu puder reescrever o códico e explicar detalhado a parte do j e i , ficarei ainda mais grato..

 

Nao precisa ser agora.

 

Se nao der tb tudo bem...

 

 

Valeus!

beleza. Logo mais posto pra você e explico tudo.

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.