1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP] registos | 3 por linha

Discussão em 'Web Development' iniciada por xsteal, 23 de Julho de 2008. (Respostas: 9; Visualizações: 1082)

  1. xsteal

    xsteal Power Member

    Boas, tou a desenvolver um catalogo online para uma empresa, no qual ao mostras os layouts, pediram-me para mostrar layouts 3 por linha como exemplo vou mostrar:

    ---lyaout1----layout2---layout3-----
    ---layout4----layout5---layout6-----

    a mostrar os layouts, tou a mostrar tudo seguido com um select na tabela e mostrar no while ou seja queria implementar esse codigo no while, se alguem me podesse dar umas luzes, agradecia.
     
  2. Py_

    Py_ Power Member

    Se fazes um select na tabela recebes um array... Como recebes um array é mais fácil e mais aconselhável "correres" o array com um ciclo foreach... Antes de iniciares este ciclo podes iniciar uma variável $i=1 e no final de obteres o resultado do array incrementas o $i.

    Dentro do ciclo foreach, fazes um if ($i==3) para que desta forma quando a condição for aceite insiras uma quebra de linha.

    Cumps,
    Py_
     
  3. xsteal

    xsteal Power Member

    Deixa ver se eu percebi...

    Código:
    $sql = mysql_fetch_array("SELECT * FROM tabela");
    
    $i=3;
    
    foreach($sql as $layout){
    
    $num = mysql_num_rows($sql);
    
    if($i<=$num){
    
    echo "<td>ola</td>";
    echo "<td>ola</td>";
    echo "<td>ola</td>";
    }
    }
    
    acho que ja tou a trocar isto tudo :S

    mas a ideia é assim?
     
  4. p3dro

    p3dro Power Member

    Passando +/- a ideia do Py_ para código ficaria algo deste tipo:

    PHP:
    $i=0;
    $splitAt=3;
    $resource=mysql_query("select nome_produto from dados_produtos");
    while(
    $myrow=mysql_fetch_assoc($resource)){
      
    $i++;
      
    $str.=$myrow["nome_produto"]." --- ";
      
    $str.=($i%$splitAt!=0)?"":"<br/>";
    }
    echo 
    $str;
    Não experimentei o código, mas teoricamente diria que coloca 3 registos por linha :p
     
  5. Py_

    Py_ Power Member

    Desculpa não ter criado o código há pouco mas o que eu estava a dizer era isto:

    Código:
    
    $sql = mysql_fetch_array("SELECT * FROM tabela");
    
    $i=1;
    
    foreach($sql as $layout){
    
    if($i==3){
    echo <br>;
    $i=0;
    }
    
    echo $layout['nome']; // exemplo
    $i++;
    
    }
    }
    
    
    Também não testei este código mas se isto não funcionar está muito perto disso...

    :lol:
     
  6. xsteal

    xsteal Power Member

    obrigado aos dois, vou exprimentar os dois codigos que ajudaram, tou mesmo a ver que preciso de queimar mais pestanas no php...
     
  7. Py_

    Py_ Power Member

    Não precisas de queimar muitas pestanas em php... a documentação é simplesmente maravilhosa... php.net

    Acredita... uns dias de consulta e consegues fazer cenas que consideravas bem complicadas...
     
  8. oscarolim

    oscarolim Power Member

    Porque complicar?

    $sql = mysql_fetch_array("SELECT * FROM tabela");

    $i=1;

    foreach($sql as $layout){

    $i%3==0?echo '<br />':'';

    echo $layout['nome']; // exemplo
    $i++;

    }
    }

    E atencao que as tags html devem ser sempre fechadas: <br> esta errado, <br /> esta certo.
     
  9. xsteal

    xsteal Power Member

    Py_, com o teu codigo não consegui deu-me erros no foreach apesar de ter uma } a mais, tirei-a e mesmo assim nao deu, o do p3dro ta quase no que quero vou tentar agora por mim, ele ja junta 3 e depois deixa uma linha a baixo, fazendo uma lista de 3 em 3...
     
  10. xsteal

    xsteal Power Member

    obrigado pela as vossas ajudas, ja ta a funcionar direito, obrigado a todos que ajudaram

    ;)
     

Partilhar esta Página