Ir para conteúdo

POWERED BY:

Arquivado

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

xTrovaox

[Resolvido] Array trazendo valor e exibindo na coluna da direita.

Recommended Posts

Pessoal será que tem como me da uma ajudinha aqui??

talvez pode ser simples para vocês.

 

É o seguinte tenho uma pagina que lista somente os nomes de uma tabela, ela lista todos eles e vai jogando pra baixo, criando linhas na tabela.

 

Será que não tem como fazer o valor ser puxado do db e quando exibir na tabela ir para o lado direito em colunas em vez de linhas, é será que é possivel ter um limite??

Exemplo: Crio uma tabela de 5 colunas e 1 linha, vou puxar 10 nomes de uma tabela, ele teria que puxar os 5 primeiros nomes e jogar nas colunas na direita, depois os outros 5 ele cria uma linha de baixo e joga pros lados tambem, e assim adiante.

 

Olha eu tenho um codigo que uso e ele vai multiplicando a linha conforme o tanto de registros.

 

<table>
			  <?php
$PegaNomes = mysql_query("SELECT nomes FROM usuarios");
 for($i=0;$i<mysql_num_rows($PegaNomes);$i++) {
 $char = $i+1;
 $Array = mysql_fetch_row($PegaNomes);
 ?>
                 <tr>
                   <td width="508" height="21">
				  <div align="left">
				    <?=$Array[0]?>
			      </div></td>
                   <? } ?>
                 </tr>
             </table>

 

Por esse codigo ele vai multiplicando as linhas conforme os registros e joga cada um em uma linha, ou seja um nome por linha.

 

Pra quem não entendeu ainda, aqui vai um exemplo que eu desenhei:

 

COMO ESTÁ:

comoesta.jpg

 

COMO TEM QUE FICAR:

exemploa.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

testae

<table><tr>
<?php
$PegaNomes = mysql_query("SELECT nomes FROM usuarios") or die(mysql_error());
$num_colunas = 5;//quantidade de colunas
for( $i = 0 ; $i < mysql_num_rows( $PegaNomes ); $i++ ){
$Array = mysql_fetch_row( $PegaNomes );
   if ( $i + 1 % $num_colunas == 0 )//verifica se é divisível pelo número de colunas
	echo "</tr><tr>";//fecha e abre outra linha
echo "<td width='508' height='21'>
	<div align='left'>{$Array[0]}</div>
	</td>";
}   
?>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Victor é tipo isso mesmo, mais eu mudei umas coisas na pagina, agora a pagina está exibindo a imagen do tipo do usuario, se ele e mod ou admin, ai ela é exibida no lugar da Array.

 

Ele está puxando nas colunas, mais o problema é que agora ele não tem limite de 5 colunas e depois cria a linha, ele ta jogando tudo pro lado, o tanto de registros que está la ele mostra na direita.

 

Eu tive que colocar um link tambem, pra quando a pessoa clicar na imagem jogar para a pagina rank, com os dados do id do usuario que ele puxa na array.

 

Segue o código onde eu mudei:

<table border="2" cellspacing="12"><tr>
<?php
$PegaNome = mysql_query("SELECT id,tipo FROM usuario");
$num_colunas = 5;//quantidade de colunas
for( $i = 0 ; $i < mysql_num_rows( $PegaNome ); $i++ ){
       $Array = mysql_fetch_row( $PegaNome );
   if ( $i + 1 % $num_colunas == 0 )//verifica se é divisível pelo número de colunas
               echo "</tr><tr>";//fecha e abre outra linha
			?>
			<a href='ir.php?pagina=rank&id=<?=$Array[0]?>'>
			<?php
       if($Array[2] == 1) {
	echo "<img src='imagens/rank/mod.png' />";
	}
       if($Array[2] == 2) {
	echo "<img src='imagens/rank/admin.png' />"; 
	} 		
	?></a><?php } ?>
</table>

 

 

eu sei que tem coisa errada ai só que não to conseguindo arrumar, se eu jogar o link dentro do echo, o link não puxa so o id puxa umas palavras doidas e da errado, o link tem que estar fora das tags php.

E do modo que está ai no comando a cima, ele está puxando tudo na direita certim, os links tambem está puxando certo, o problema é que ele não está criando as linhas, ele está puxando todos os dados e jogando nas colunas, o limite de 5 colunas não está funcionando.

 

 

Falando nisso eu testei agora seu codigo limpo sem e ditar nada, e ele puxou 6 colunas e não foi pra linha de baixo, deve que tem algo de errado.

 

Será que alguem conhece algum jeito de colocar limites na ordem que forem puxadas????

plis alguem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Explique melhor, não entendi nada.

 

conhece o break ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

William estou precisando puxar todos os nomes da tabela usuario.

 

O modo que eu tenho aqui, ele exibe os nomes cada um em uma linha, como no exemplo das imagens que mostrei.

 

Estou querendo que ele exibe os nomes, um do lado do otro, com 5 colunas no maximo, como no exemplo das imagens que eu mostrei.

 

O código do Victor mostra um do lado do otro, só que o valor maximo de colunas que ele tem que ter não está funcionando, no código dele a logica seria ter 5 colunas, e quando atingir isso, ele joga pra linha de baixo e começa de novo.

 

Pessoal será que alguem sabe se tem como fazer isso?

O codigo do victor esta puxando na direita so que ele não da limites de colunas =[

Compartilhar este post


Link para o post
Compartilhar em outros sites

claro que não funciona,você não criou nenhuma coluna

olha o esquema da tabela

<table> //cria tabela
  <tr> //cria linha dentro da tabela
     <td>//cria coluna dentro da linha
        //conteúdo   
     </td>//finaliza a coluna
  </tr>//finaliza a linha
</table>//finaliza a tabela

testae

<table><tr>
<?php
$num_colunas = 5;//quantidade de colunas
for( $i = 0 ; $i < 100; $i++ ){
   if ( $i + 1 % $num_colunas == 0 )//verifica se é divisível pelo número de colunas
               echo "</tr><tr>";//fecha e abre outra linha
   echo "<td>teste</td>
}
?>
</tr></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, foi malz, n tinha testado o código

um dos problemas é o operador % que tem precedência da soma e dava errado aqui

$i +1 % $num_colunas == 0

 

e outra é só começar em -1 o $i no loop

e no seu caso terminar em

mysql_num_rows( $PegaNome ) - 1

 

ao exemplo aqui

<table><tr>
<?php
$num_colunas = 5;//quantidade de colunas
for( $i = -1 ; $i < 99; $i++ ){
   if ( ( $i + 1 ) % $num_colunas == 0 )//verifica se é divisível pelo número de colunas
       echo "</tr><tr>";//fecha e abre outra linha
   echo "<td>teste</td>";
}
?>
</tr></table>

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.