Ir para o conteúdo
Ascensao

Duvida na criação de tabela

Mensagens Recomendadas

Ascensao    1
Ascensao

Boas

Tenho o seguinte código em php:

foreach($result as $val)
{
printf('<img src="%s"/>', $val);
}

Preciso que as imagens fiquem numa tabela 3 por 3, mas nao tenho nenhuma ideia de como o fazer.

Exemplo:

<table>
<tr>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
</tr>

<tr>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
</tr>

<tr>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
<td><img src="%s"/></td></td>
</tr>

Mas caso não haja imagens suficientes no array cria menos linhas e consequentemente células.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Xikinho90    0
Xikinho90

Boas,

Vais precisar de verificar o número de iterações, e a cada 3 abres uma nova linha na tabela.

Talvez seja melhor utilizares um ciclo for.

Obrigado,

Francisco Loureiro

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
KTachyon    272
KTachyon

Para fazeres com o foreach, podes utilizar uma variável que começa a zero, incrementada a cada ciclo, e calculas o resto da divisão por N (número de colunas):

$coluna = 0, $n_colunas = 3;

foreach ($result as $val) {
    if ($coluna == 0)
        printf("<tr>");
    
    printf('<td><img src="%s" /></td>', $val);
    $coluna++;

    if ($coluna == $n_colunas)
        printf("</tr>");
    
    $coluna = $coluna % $n_colunas;
}

if ($coluna > 0)
    printf("</tr>");

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ascensao    1
Ascensao

Para fazeres com o foreach, podes utilizar uma variável que começa a zero, incrementada a cada ciclo, e calculas o resto da divisão por N (número de colunas):

$coluna = 0, $n_colunas = 3;

foreach ($result as $val) {
    if ($coluna == 0)
        printf("<tr>");
    
    printf('<td><img src="%s" /></td>', $val);
    $coluna++;

    if ($coluna == $n_colunas)
        printf("</tr>");
    
    $coluna = $coluna % $n_colunas;
}

if ($coluna > 0)
    printf("</tr>");

Perfeito Obrigado  :)

Partilhar esta mensagem


Link 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