Ir para conteúdo

POWERED BY:

Arquivado

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

cristianweb

[Resolvido] Colunas mysql

Recommended Posts

Olá pessoal estou desenvolvendo um sistema de classificados e preciso q ele gere 3 colunas e que os anuncios fiquem um embaixo do outro

 

exemplo

 

---------------------------------------------------

|Anuncio 1 ||Anuncio 2||Anuncio 3|

|Anuncio 4 ||Anuncio 5||Anuncio 6|

|Anuncio 7 ||Anuncio 8||Anuncio 9|

|Anuncio 10||Anuncio 11||Anuncio 12|

---------------------------------------------------

 

eu ja consegui fazer assim

 

---------------------------------------------------

|Anuncio 1||Anuncio 2||Anuncio 3|

|Anuncio 1||Anuncio 2||_________|

|Anuncio 1||_________||_________| |

|Anuncio 1||_________||_________|

---------------------------------------------------

| Anuncio 4 || Anuncio 5 || Anuncio 6 |

---------------------------------------------------

| Anuncio 7 || Anuncio 8 || Anuncio 9 |

---------------------------------------------------

| Anuncio 10 || Anuncio 11 || Anuncio 12 |

---------------------------------------------------

 

só que se o primeiro anuncio é grande e o segundo é pequeno sobra um espaço e eu queria eliminar esse espaço.

 

OBS: estou usando PHP + MySql

 

Obrigada pessoal. por favor me ajudem eu preciso urgente disso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca numa DIV ou LI cada anuncio.

 

ai você define um height em pixels fixo

e faz um float: left;

 

agora, 'oque você queria fazer com o espaço que sobrou'?

jogar outro anuncio ? não entendi muito bem, mas a diagramação da página poderia ficar comprometida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca numa DIV ou LI cada anuncio.

 

ai você define um height em pixels fixo

e faz um float: left;

 

agora, 'oque você queria fazer com o espaço que sobrou'?

jogar outro anuncio ? não entendi muito bem, mas a diagramação da página poderia ficar comprometida.

 

Olha minha tabela está retornando algo assim

 

<table  cellpadding='10' cellspacing='0' border='0' style='background:url(bk.png)  repeat-y;'>
  <tr>
    <td  width='250' height=''><div id='anuncio'>anuncio1</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio2</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio3</div></td>
  </tr>
  <tr>
    <td  width='250' height=''><div id='anuncio'>anuncio4</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio5</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio6</div></td>
  </tr>
  <tr>
    <td  width='250' height=''><div id='anuncio'>anuncio7</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio8</div></td>
    <td  width='250' height=''><div id='anuncio'>anuncio9</div></td>
</table>

Eu não posso definir uma altura fixa pois alguns anuncios são muito grande e outros bem pequenos e fica uma coisa bem estranha olha só um exemploImagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá... nesse caso, é 'mais simples' você fazer assim:

 

anuncio 1 | anuncio 4 | anuncio 7

anuncio 2 | anuncio 5 | anuncio 8

anuncio 3 | anuncio 6 | anuncio 9

pois se o 1 por exemplo, for 'alto':

 

o resultado que você terá na tela, será algo como:

anuncio 1 | anuncio 4 | anuncio 7

anuncio 1 | anuncio 5 | anuncio 8

anuncio 1 | anuncio 6 | anuncio 9

anuncio 2 |

anuncio 3 |

não trabalhe com tabelas dessa forma.

estude HTML procure por tableless

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais o negocio é que eu não tem como eu saber se o anuncio grande é o anuncio1 eu preciso de algo que deixe os anuncios um embaixo do outro com ou sem espaço ex: onde terminar o anuncio1 enbaixo ja começar o anuncio 4, onde terminar o 2 enbaixo ja começar o 5 e assim por diante

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara, fazendo o outro tipo de listagem, em 'colunas' e não em 'linhas'..

 

esse processo que você precisa, vai acontecer naturalmente.

note que coloquei:

anuncio 1 | anuncio 4 | anuncio 7

..

 

e não

anuncio 1 | anuncio 2 | anuncio 3

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É tipo isso?

<style type="text/css">
li{
float:left;
padding-left:15px;
list-style:none;
width:225px;
}
</style>

<table border="1" width="800">
  <tr>
    <td width="147"><ul>

<li>Computadores Lap top Acer 2 GB, Intel, dual core, tela 15'4, HD 120, câmera de 1.3 megapixels e muitos programas. R$ 1.000,00 Tr.: (xx) 8408-xxxx / 8434-xxxx</li>
<li>anuncio 2</li>
<li>anuncio 3</li>
<li>anuncio 4</li>
</ul></td>
  </tr>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nops..

 

seria mais algo como:

<style type="text/css">
.col { float: left; }
</style>
</head>
<body>
<ul class="col">
   <li>anuncio 1</li>
   <li>anuncio 2</li>
   <li>anuncio 3</li>
</ul>
<ul class="col">
   <li>anuncio 4</li>
   <li>anuncio 5</li>
   <li>anuncio 6</li>
</ul>
<ul class="col">
   <li>anuncio 7</li>
   <li>anuncio 8</li>
   <li>anuncio 9</li>
</ul>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cristian, acredito que isso resolva o seu problema...

 

<?php
	 
//*********************************************************************
// CONFIGURAÇÃO DE BANCO DE DADOS
//*********************************************************************
$con = mysql_connect('localhost','root','senha');
$bd  = mysql_select_db('base_dados');
?>

<table cellSpacing=1 cellPadding=0 width="100%" align=center border=0>
<tr>
<td>
<?
//*********************************************************************
// GERA A INSTRUÇÃO SQL E CHAMA A FUNÇÃO PARA GERAR AS COLUNAS
//*********************************************************************
$sql = "SELECT * FROM ".$busca_config['tbl_categ']." ORDER BY Nome ASC ";
GeraColunas(4, $sql)
?>
</td>
</tr>
</table>

<?
//*********************************************************************
// FUNÇÃO: GERACOLUNAS
// Parametros:
//  $pNumColunas (int)   > Quant. de colunas para distribuição
//  $pQuery    (string) > Query de registros
//*********************************************************************
function GeraColunas($pNumColunas, $pQuery) {
$resultado = mysql_query($pQuery);
echo ("<table width='100%' border='1'>\n");
for($i = 0; $i <= mysql_num_rows($resultado); ++$i)
   {
     for ($intCont = 0; $intCont < $pNumColunas; $intCont++)
         {
           $linha = mysql_fetch_array($resultado);
           if ($i > $linha)
              {
               if ( $intCont < $pNumColunas-1) echo "</tr>\n";
                    break;
              }
           $codigo = $linha[0];
           $texto = $linha[1];
           if ( $intCont == 0 ) echo "<tr>\n";
               echo "<td>". $texto ."</td>\n";
           if ( $intCont == $pNumColunas-1 )
              {
               echo "</tr>\n";
              }
           else
             {
              $i++;
             }
         }
   }
echo ('</table>');
}
 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@cristianweb, faça como indiquei.

 

Flutando as listas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado William só que decidi usar mesmo com o espaço porque no caso da lista se eu tiver apenas 3 registros irão ficar 1 enbaixo do outro e preciso que fique do lado. + vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, na verdade é possível você faz o sistema inteligente, de forma que se tiver apenas 3 registros, o loop coloque eles numa mesma linha.

 

um pouco de lógica de programação, o operador % e um num_rows() para saber qntos registros têm, é o necessário para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será se é possivel que ocorra um loop assim?

 

---------------------------------------------------

|Anuncio 1 ||Anuncio 2||Anuncio 3|

|Anuncio 4 ||Anuncio 5||Anuncio 6|

|Anuncio 7 ||Anuncio 8||Anuncio 9|

---------------------------------------------------

 

?

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.