Ir para conteúdo

POWERED BY:

Arquivado

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

paulopavanelli

para listar registro em ordem de colunas

Recommended Posts

Boa tarde pessoal!!!

 

Estou com uma dúvida, acredito ser simples.

 

Tenho um script para listar um conjunto de registro em um banco mysql em ordem alfabética.

 

Exemplo:

 

AAAAAA-----|-----BBBBBB------|-----CCCCCC

DDDDDD----|-----EEEEEE------|-----FFFFFF

GGGGGG----|-----HHHHHH-----|-----IIIIII

 

Como podem ver o script está listando os registro em ordem alfábetica com 3 colunas, porém eu gostaria que os registros fossem apresentados a seguinte maneira:

 

AAAAAA-----|-----DDDDDD------|-----GGGGGG

BBBBBB-----|-----EEEEEE-------|-----HHHHHH

CCCCCC----|-----FFFFFF--------|-----IIIIII

 

 

 

Estou colando aqui o código:

 

 

 

<html>

<head>

<title>Dúvida Cruel</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

 

<body>

<?

// *****CONECTA COM O BANCO DE DADOS*******

$con = mysql_connect("localhost","usuário","senha") or die("ERRO NA CONEXÃO");

$db = mysql_select_db("base",$con) or die("ERRO NA SELEÇÃO DA BASE DE DADOS");

 

 

$cat = mysql_query("SELECT * FROM `categorias` WHERE id_cat = path AND tipo = 'P' AND path LIKE '%a%' ORDER BY nome_cat" );

$total = mysql_num_rows($cat);

 

 

$linha = 3; // Numero de imagens por linha

?></tr>

</table> <table width="593" height="113" border="0" cellpadding="0" cellspacing="0">

<tr>

 

<td valign="top">

<table width="700" border="0" cellpadding="0" cellspacing="0">

<tr>

<?

for($i=0; $i<$total; $i++) {

$img = mysql_fetch_array($cat);

//$img = mysql_fetch_array($query);

//$imagem = $img["imagem"];

$imagem = $img["nome_cat"];

if($linha == $atual) {

echo "</tr><tr>";

$atual = 0;

}

?>

<td width="574" height="18" valign="middle"> <? echo "<strong><img src=\"../../imagens/folder.gif\" width=\"16\" height=\"16\"> <a href=\"../busca/index.php?tipo={$img['path']}\" target=\"_parent\">{$img['nome_cat']}</strong></a>"; ?>

<div align="center"></div>

<div align="center"></div>

<div align="left"></div></td>

<?

$atual++;

}

?>

</tr>

</table>

</body>

</html>

 

 

Me ajudem por favor

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existem várias maneiras, uma delas é ver quantos resultados foram retornados pela query com mysql_num_rows(), dividir por 3 (acredito que seja esse o número de colunas que você quer), e ir gravado num array da seguinte maneira:

$rows = @mysql_num_rows($busca);$divide = ceil($rows/3);while ($r = @mysql_fetch_array($busca)) {$array[$coluna][] = $r['nome'];if (count($array[$coluna])==$divide) {$coluna++;}}

Dessa maneira irá ser gravado 3 arrays dentro de $array, apartir desse array você pode dar um print da maneira que você quiser (se quiser saber como fica a estrutura do array é só dar um print_r), essa foi a primeira idéia que veio à cabeça, deve ter outras maneiras mais simples...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara,Obrigado pela ajuda, porem não estou conseguindo entender aonde devo colocar o print ou echo.Veja:

<?$busca = mysql_query("SELECT * FROM categorias WHERE id_cat LIKE 'A' ORDER BY nome_cat" );$rows = mysql_num_rows($busca);$divide = ceil($rows/3);while ($r = mysql_fetch_array($busca)) {$array[$coluna][] = $r['nome_cat'];if (count($array[$coluna])== $divide) {$coluna++;echo "<a href=\"../busca/index.php?tipo={$r['path']}\" target=\"_parent\">{$r['nome_cat']}</a><br>";}}?>

Este script está apresentando sempre os três ultimos registros de cada coluna.ObrigadoPaulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, você não entendeu, esse code só irá gerar um array, no caso o $array, você pode dar um print_r($array) pra ver a estrutura do array, você ainda terá que montar a parte que exibe os results, você pode usar um for assim:

PHP

[*]for ($num=0;$num<count($array[0]);$num++) {

[*]echo $array[0][$num]."<br>";

[*]}

Nesse caso pra 1º coluna, nas outra é só substituir o $array[0] por $array[1] e $array[2] :) http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o conceito da coisa, mais mesmo assim não consegui evolir com este script, que por falar nele, existe vários posts com esta mesma dúvida.

 

Sem querer abusar, mais já abusando, como que ficaria o script com o FOR.

 

Acredito que será util para muita gente!

 

Obrigado,

 

Paulo http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.