Problemas para listar produtos

Olá a todos.

Recentemente precisei listar produtos com bastante dados mas sempre sai em forma de lista única, onde fica um produto por linha em uma tabela mas estou tentando de uma forma onde poderia ficar quantos coubessem na coluna e depois descesse uma linha, agindo como na lista de apenas imagens. (utilizando while(rs.next())

Visualização do que tento fazer:

Bom, até consigo fazer , só que os produtos ficam todos em apenas uma linha sempre, não descem uma coluna nunca. Imagina isso acontecer em centenas de produtos ou até mesmo no suficiente para estragar o layout.

Nunca consigo fazer desta forma.
Peço a ajuda de vocês.

Obrigado.

Você não pode usar um contador? Algo como:

int contador = 0;
int itensPorLinha = 3;
while (rs.next()) {
    mostrar o item;
    contador = contador + 1;
    if (contador > itensPorLinha) {
        contador = 0;
        ir para a próxima linha;
    }
}

Não entendi muito bem.
Nas linhas mostra item e ir para a próxima linha, ficariam apenas um item?
Mas aí seriam mostrados manualmente, ou não?!

Você não leu o programa (na verdade um pseudo-código) direito?

No programa você mostra o item 1, 2 e 3. Então passamos para a próxima linha.

Na linha seguinte, você mostra o item 4, 5, e 6, e assim por diante.

Como é que você passa para a próxima linha fica para você fazer; não sei se você usa < table > <tr> <td> … etc., ou <div>, ou sei lá o quê.

Estou usando tags

mesmo.

Vou ser o que consigo e posto o resultado lá pela manhã.
Obrigado pela ajuda até agora.

Bom, tentei mas não entendi mesmo.

[code]

<% try { pstmt = conn.prepareStatement("SELECT * FROM ads ORDER BY id DESC"); rs = pstmt.executeQuery();
        int contador = 0;
        int itensPorLinha = 3;
        while (rs.next()) { %>
    
        <% contador = contador + 1;
        if (contador > itensPorLinha) {
            contador = 0;
            // ir para a próxima linha; %>
       <td align="center">
         <a href="<%=rs.getString("url")%>" target="_blank">
              <img src="ads/<%=rs.getString("ads")%>" width="120" 
              height="70" align="absmiddle" />
         </a> <br /> <%=rs.getString("descricao")%>
      </td>
         <%   }
        }

        if (rs.getRow() < 0) {
            out.println("Não disponível no momento!");
        }
   } catch (SQLException sqlex) {
       out.println("<p style=\"padding:15px;\">Não disponível no momento!</p>");
       //out.println(sqlex);
   }

%>

[/code]

e só selecionou um arquivo e o texto que o descreve.
se setar o arquivo no laço wile seleciona a lista um do lado do outro mas sempre na mesma linha, claro, pois tudo estaria dentro de uma única tag

mas assim, no if lista apenas um, logo após o contador obter valor 0.

Não encontrei outra maneira.
Estou apanhando nas tags mesmo. oO

@thingol, demorei mas compreendi.

Obrigado.