Ir para conteúdo

Arquivado

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

weslleysolo

[Resolvido] Resultado de busca MYSql em 4 colunas,mas sem tableas

Recommended Posts

Bom galera, tem PHP/Mysql no meio da minha duvida tbm...

meu sistema de consulta ta prontinho, mas queria saber um jeito de mostar o resultado da pesquisa sem usar tabelas, somente divs...

 

Alguem tem uma solucao?..mostrar o resultado em 4 colunas, por exemplo....

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

tabelas são feitas para isso!!!

Eu, sei...mas nao quero assim...

 

mas se quiser mesmo com div

 

utilize o float: left;

Não é tão simples, ja tentei assim...o que acontece é que gera intermináveis colunas em forma de "escadinha", e não encontrei o "comando certo" pra padronizar em 4 colunas, pula uma linha, gera mais 4 colunas, etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

<style type="text/css">

body{margin:0px;padding:0px;}

.col1{

float:left;

height:180px;

border:1px solid #000;

 

}

.col2{

float:right;

height:180px;

border:1px solid #000;

}

 

</style>

<?include("conexao.php");

 

$q[] = mysql_query('SELECT * FROM dados');

$reg = mysql_num_rows($q[0]);

if ($reg % 2 != 0)

{

$reg++;

}

$regRow = $reg / 2;

$divClass = 1;

$contagem = 1;

while ($data = mysql_fetch_array($q[0]))

{

print ('<div class="col'.$divClass.'">'.$data['nomeemp'].'</div><br>');

if ($contagem == $regRow)

{

$divClass = 2;

}

$contagem++;

}

?>

tentei assim, na doidera....mas gera colunas um monte de colunas e tudo em forma de escadinha..

 

PS.acho q postei minha duvida no forum errado, caso julgue nescessário, favor algum MOD mover lá pro PHP. grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

weslleysolo, pelo que to vendo, o seu problema é com o SQL então..

 

você tem que dar um LIMIT="4", imprimir os resultados, coloca um <br />, ou outra coisa... e faz outra consulta começando do 5° registro.. tb limitado à 4.

 

Ou então, faz uma condição if com a tua linguagem server-side, e nela diga que se encontrar um DIVISOR de 4, dê uma quebra de linha...

 

sei lá, são só ideias.. vou tentar fazer alguma aqui...

tb não sei qual a complexidade dos dados que você ta trazendo do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao tiu,

 

sobre o banco, quero resgatar apenas 3 informacoes...

vou pegar suas dicas aqui e tentar ver algo tbm...o lance do LIMIT nao tentei fazer...

 

valeu pela força, velho,.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se você já conseguiu.. mas fiz o seguinte com o LIMIT 4

 

$sql2=mysql_query("SELECT * FROM `tabela` LIMIT 4 ");
$sql3=mysql_query("SELECT * FROM `tabela` LIMIT 4 OFFSET 4");
$sql4=mysql_query("SELECT * FROM `tabela` LIMIT 4 OFFSET 8");
...
A próxima consulta, tb limitada à 4, começa a partir do registro que a anterior não pegou, e por assim em diante.

 

 

E mandei um while se repetir até parar de encontrar registros na consulta.(um loop para cada consulta)

while($dados=mysql_fetch_assoc($sql2))
		   {
		   }
/*coloca uma quebra de linha aqui*/
while($dados=mysql_fetch_assoc($sql3))
		   {
		   }
...
Usei fetch_assoc, mas faça como achar melhor.. e a formatação das "colunas" agora só depende do HTML, a parte de limitar 4 colunas para cada linha, já tá feita com o php.

 

Espero ter ajudado... e tb espero que mais alguem do forum comente essa minha solução, ou apareça com outra melhor.. sei lá..

Compartilhar este post


Link para o post
Compartilhar em outros sites

mano, valeu pela força...realmente nao tinha pensado nisso...mas tem um probleminha ai..nao esta muito complexo, pq se eu limitar um certa quandidade o banco nao vai me trazer todo os dados...exemplo, tenho 50 registros, se eu limitar como no exemplo, como vao aparecer o restante :huh: ...

 

bom, mais vou pegar seu exemplo e tentar uma coisa aqui...

 

valeu mano,.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é a questão de "eu não quero" e sim a questão do que é correto (e mais simples). Por que fazer um monte de div´s, com float´s?

tabelas são feitas para isso!!!

Eu, sei...mas nao quero assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que fazer um monte de div´s, com float´s?

 

e onde esta o problema nisto? sendo q essas divs estarao como class...

E este forum tbm nao fala sobre tableless?

 

e sobre se simples, veja os dois exemplos:

 

 

//Sem tabela
$sql=mysql_query("SELECT * FROM dados order by nomeemp ASC");
for ($L=1; $L=mysql_fetch_array($sql); $L++) {
$i%5;
	  echo '<div class="col1">'.$L[nomeemp].'</div> ';
   
}

/*Com tabela*/
<table width='100%' align="center">

<?
$sql=mysql_query("SELECT * FROM dados order by nomeemp ASC");
$result = mysql_query($sql)or die (mysql_error());
$i = 0;
while($row = mysql_fetch_array($result)) {
$dado			= $row["dado"];
if ($i==0)
echo "<tr>";
echo '
<td align="center" width=100>

'.$dado.'<br>
</td>';
$i++;
if ($i == 2) {
   echo "</tr>";
   $i = 0;
}}?></table>

Mas se eu estiver fazendo errado, gostaria que de uma explicação :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que fazer um monte de div´s, com float´s?

 

e onde esta o problema nisto? sendo q essas divs estarao como class...

E este forum tbm nao fala sobre tableless?

1) Não tem problema nenhuma em fazer várias div´s com float´s, o trabalho vai ser maior;

2) Esse fórum é sobre Webstandards, não entendi sua colocação sobre tableless?

 

Saiba que construir sites com "tableless" não quer dizer que as tabelas não existem mais, ok?

Mostre um exmplo, se possível uma imagem, de como você quer que esse resultado da busca ao BD fique disposta na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qndo eu trabalho com loops e tabelas, prefiro fazer da seguinte maneira o laço:

 

<?php
while(){
?>
parte da tabela que vai se repetir..
é onde fica a "mágica", não preciso fazer o php imprimir
todo o código html... abrindo o loop antes, e fechando depois 

de tudo que quero que se repita...
economizo muitos echos/prints..

<?php
}
?>

Bom, mas deu certo o esquema de "4 colunas"?..

arranjou outro jeito sem ser com LIMIT 4?

 

Tipo.. no codigo que postei, você é capaz de imprimir até 12 registros.. se precisasse de mais.. era só ir adicionando consultas.. e vale lembrar que caso a tua consulta não retorne o máximo que você fez... não terá nenhum erro na tela..

apenas o while não funcionará..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Giovani

 

Eu ja conseguir fazer, veja como ficou...era exatamente como queria.

Imagem Postada

 

falei sobre tableless pq ja vi assutos relacionados http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

tiu uiLL

E foi você mano q me fez entender a logica de como fazer...o exempo q tu fez nao era bem o que eu queria, mas aproveitei seu raciocinio e fiz, look:

 

//Sem tabela
$sql=mysql_query("SELECT * FROM dados order by dados ASC");
for ($L=1; $L=mysql_fetch_array($sql); $L++) {
$i%5;
	  echo '<div class="col1">'.$L[dados].'</div> ';
  
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Putz.. que bom weslley..

 

Qndo tiver on line, posta ai pra gente poder conferir o trabalho

xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
...

e onde esta o problema nisto? sendo q essas divs estarao como class...

E este forum tbm nao fala sobre tableless?

...

...

Mas se eu estiver fazendo errado, gostaria que de uma explicação :)

Aqui vai a explicação:

 

Os elementos HTML para construção de tabelas (TABLE, TR,TH,TD,THEAD,TFOOT, TBODY,CAPTION, etc)

bem como todos os atributos para aqueles elementos são perfeitamente válidos na codificação segundo

os Padrões Web.

 

Cada elemento do HTML tem um valor semântico (exceto os elementos SPAN e DIV) e devem ser empregados

segundo este valor. Por exemplo: H para cabeçalhos, P para parágrafos e assim por diante.

 

Quando um conteúdo possui um significado tal que não exista um elemento com valor semântido capaz de marcá-lo

usamos SPAN ou DIV com este propósito.

 

Tabelas se destinam a apresentar dados tabulares e este é seu valor semântico.

Então, se os resultados que estão vindo do banco de dados são dados a serem apresentados, o elemento a usar é TABLE.

Usar DIV, neste caso, é um erro sob o ponto de vista dos Padrões Web, pois existe um elemento com valor semântico apropriado.

Claro, você pode conseguir o mesmo efeito visual usando o que bem entender P, UL, OL, BLOCKQUOTE ou seja lá o que for, mas,

nestes casos sua marcação estará em desacordo com os Padrões Web.

 

O grande culpado desta confusão para iniciantes (e até mesmo para não iniciantes) é este nocivo termo TABLELESS.

Tableless é um termo comercial adotado largamente no Brasil que só serve para confundir os menos informados.

Esqueçam tableless (sem tabelas), pois projetos seguindo os Padrões Web podem e devem usar tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maujor

 

Putz!! muito bem explicado kra...agora esclareceu minha dúvida....desculpa a demora em responder.rsrs.mais de um mes depois...rsrs

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.